Hello,大家好呀。我是阿风,一个学习Java还没离开象牙塔的学生。来自一个不出色的大学,我就不说那所大学了,读到文章的你只要是个本科,可以说就不比我差。所以,我并不出色,已经大三了,找工作的压力我感觉已经在我头顶,只是它还没真实的压到我的肩上。所以我开始努力学习,希望未来能够更好点儿,大家也可以参考我的学习顺序:
Java ——>Java Web ——>SSM框架 ——>Spring Boot——>Spring Cloud
目前Spring Cloud已经快被拿下了。我给自己沉淀一周的时间,写点小项目,总结一下自己学的东西。我是今年才开始努力的,因为我遇到了一位好老师,不是说我从他那里学到多少文化知识,他让我明白了一个道理,大学想出色,你就不能跟着老师学,因为老师的教学,就像工厂的生产机器,照着一个模子来的,你要想不一样,你就需要更多的雕琢。这个学习路径也是他告诉我的,之前我确实迷茫,我一个学后端的,都在网上买课学安卓了,因为我觉得做APP很酷,哈哈,其实有点跑偏。很少有老师说,你不要跟着我的节奏学,你要快速的把我教的学完,所以,恩师,不为过。
好了,闲话少说,希望对你有所启发,下面第一篇:
SSM环境搭建:
准备工作:JDK1.8 、IntelliJ IDEA、Maven、tomcat
SSM(Spring,SpringMVC,Mybatis)
1、Spring 是另一个主流的Java Web 开发框架,该框架是一个轻量级的应用框架,具有很高的凝聚力和吸引 力。Spring 框架因其强大的功能以及卓越的性能而受到众多开发人员的喜爱。Spring两大核心技术:控制 反转(Inversion of Control,Ioc)/依赖注入DI 和面向切面编程AOP
2、SpringMvc是非常出色的Web MVC框架,可以帮助我们构建像Spring那样灵活和低耦合的web应用程 序。实际就是对JSP/Servlet进行封装处理,由框架内的处理器配合各个环节的处理工具,以便控制web请求。
重要组件:①前端控制器(DispatcherServlet):由它接收Web请求,然后调用框架的其他组件完成处 理,最后返回响应结果。
②映射处理器 HandlerMapping:通过配置文件或者注解找到web请求路径对应的Handle。
③处理器 Handler:由开发人员编写,完成业务逻辑功能。
3、Mybatis:一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
那么如何整合呢,我将其分为两个部分:①整合Spring和MyBatis ②正常配置SpringMvc
导入Jar包
1、spring的jar包:11个
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
spring-aop-5.0.1.RELEASE.jar
spring-aspects-5.0.1.RELEASE.jar
spring-beans-5.0.1.RELEASE.jar
spring-context-5.0.1.RELEASE.jar
spring-core-5.0.1.RELEASE.jar
spring-expression-5.0.1.RELEASE.jar
spring-jcl-5.0.1.RELEASE.jar
spring-jdbc-5.0.1.RELEASE.jar
spring-tx-5.0.1.RELEASE.jar
2、MyBatis的jar包:
mybatis-3.4.2.jar
3、MyBatis和Spring整合的jar包:1个
mybatis-spring-1.3.1.jar
4、springmvc的jar包:2个
spring-web-5.0.1.RELEASE.jar
spring-webmvc-5.0.1.RELEASE.jar
我也已经全部在maven官网中拷贝下来了,每一块上面都有注解,我相信你需要的我都有。
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.3.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.3.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.3.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>2.0.0-alpha0</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>5.3.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>5.3.3</version>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.5</version>
</dependency>
<!--springmvc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.3</version>
</dependency>
<!--MyBatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.3</version>
</dependency>
<!--mybatis整合Spring-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.3</version>
</dependency>
<!--数据驱动依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--数据源-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.2</version>
</dependency>
<!--JSTL-->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!--文件上传-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.2</version>
</dependency>
<!--使用HttPSession-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!--自定义标签-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/jsp-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!--解析data-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.12.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.12.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.1</version>
</dependency>
<!--文件上传-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.2</version>
</dependency>
</dependencies>
配置SpringMvc.xml
首先在web.xml配置前端控制器
<!--前端控制器--> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-*.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!--解决中文乱码的过滤器--> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
在资源问价夹创建spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context= "http://www.springframework.org/schema/context" xmlns:ixsi= "http://www.w3.org/2001/XMLSchema-instance" ixsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--开启注解扫描--> <context:component-scan base-package="com.zl.hrm.**.controller"/> <!--配置视图解析器--> <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <!-- 对静态资源文件的访问 --> <mvc:default-servlet-handler /> <!--配置拦截器--> <mvc:interceptors> <mvc:interceptor> <!--拦截的路径--> <mvc:mapping path="/**"/> <!-- 不进行拦截 --> <mvc:exclude-mapping path="/index.jsp,/,/user/logout"/> <!--启用拦截路径--> <bean class="com.zl.hrm.utils.MyIntercepor"></bean> </mvc:interceptor> </mvc:interceptors> <!--文件上传--> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!--指定编码方式--> <property name="defaultEncoding" value="utf-8"/> <!--指定上传文件最大值,单位是字节,-1表示无限制--> <property name="maxUploadSize" value="100000000"/> </bean> <!--开启SpringMVC注解的支持--> <mvc:annotation-driven/> </beans>
Spring和MyBatis的整合
mybatis文件与之前不同,之前实在mybatis-config.xml中配置数据库连接的,现在要把这些放在spring的配置文件中,所以mybatis配置文件中只写类的别名和引用的Mapper(当然,这个文件也可以不写,直接指出mapper所在位置,但是别名就无法配置了。)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <!--批量定义别名--> <package name="com.zl.hrm.**.bean"/> </typeAliases> </configuration>
然后我们首先需要配置数据源,方便修改,建议配置:jdbc.properties
druid.driverClassName=com.mysql.jdbc.Driver druid.url=jdbc:mysql://127.0.0.1:3306/hrm?useUnicode=true&characterEncoding=UTF-8 druid.username=root druid.password=123456
1、Spring中配置数据源
2、sqlSessionFactory对象
3、UserMapper对象
为了方便区分,最好将Spring分开,例如 Spring-dao.xml;Spring-service.xml
最后上代码:spring-dao.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 配置整合mybatis过程 -->
<!-- 1.配置数据库相关参数properties的属性:${url} -->
<context:property-placeholder location="classpath:jdbc.properties" />
<!-- 配置数据源 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<!-- 数据库基本信息配置 -->
<property name="url" value="${druid.url}" />
<property name="username" value="${druid.username}" />
<property name="password" value="${druid.password}" />
<property name = "driverClassName" value = "${druid.driverClassName}"/>
</bean>
<!-- 3.配置SqlSessionFactory对象 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入数据库连接池 -->
<property name="dataSource" ref="dataSource" />
<!-- 扫描sql配置文件:mapper需要的xml文件 -->
<property name="mapperLocations" value="classpath:mapper/*.xml" />
<!-- 指定mybatis全局配置文件的位置 -->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
<!-- 4.配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 注入sqlSessionFactory -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
<!-- 给出需要扫描Dao接口包 -->
<property name="basePackage" value="com.zl.hrm.**.dao" />
</bean>
</beans>
spring-service.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 扫描service包下所有使用注解的类型 -->
<context:component-scan base-package="com.zl.hrm.**.service" />
<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 注入数据库连接池 -->
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 配置基于注解的声明式事务 -->
<tx:annotation-driven transaction-manager="transactionManager" />
</beans>
最后看一下结构:
记得把spring-service、dao、mvc里全部改成自己的路径,数据库也更改
来一个mapper小例子,路径记得改哟
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zl.hrm.dept.dao.DeptDao">
<!--删除部门-->
<delete id="delDepts">
delete from dept_inf where id in
<foreach collection="array" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
</mapper>
希望对你有所帮助





最近浏览
