SSM整合
1、 依赖
- 首先看一下我们需要的依赖
<!-- 这个非常重要,要修改他的打包方式--> <packaging>war</packaging> <properties> <javax.servlet-api.version>4.0.1</javax.servlet-api.version> <spring.version>5.2.9.RELEASE</spring.version> <aspectjweaver.version>1.9.5</aspectjweaver.version> <mysql.version>5.1.49</mysql.version> <mybatis.version>3.5.4</mybatis.version> <mybatis-spring.version>2.0.4</mybatis-spring.version> <druid.version>1.1.10</druid.version> <lombok.version>1.18.12</lombok.version> <junit.version>4.13</junit.version> <log4j.version>1.2.17</log4j.version> <fastjson.version>1.2.68</fastjson.version> </properties> <dependencies> <!-- WEB依赖--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>${javax.servlet-api.version}</version> </dependency> <!-- spring的依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!-- AOP织入的依赖--> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectjweaver.version}</version> </dependency> <!-- 数据库的依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <!-- mybatis的依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- spring整合mybatis的依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${mybatis-spring.version}</version> </dependency> <!-- 事务的依赖(注意版本不能大过spring的版本)--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.3.27.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <!-- 数据源的依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>${druid.version}</version> </dependency> <!-- SpringMVC的依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version> </dependency> </dependencies>
2、Mybatis
- Mybatis
整合mybatis我们需要两个文件一个是mybatis-config的核心配置文件,另一个就是spring整合mybatis的文件
- mybatis-config.xml
我们一般在这个文件中只配置别名和mybatis的动态行为
<configuration> <!-- 设置--> <settings> <setting name="logImpl" value="LOG4J"/> </settings> <!-- 别名--> <typeAliases> <package name="com.hdax.pojo"/> </typeAliases> </configuration>
- spring-dao.xml
在spring中配置数据源和mapper
<!-- 扫描包--> <context:component-scan base-package="com.hdax.dao"/> <!-- 引用外部配置文件--> <context:property-placeholder location="classpath:database.properties"/> <!-- 配置数据源--> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <!-- sqlSessionFactory--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 注入数据源--> <property name="dataSource" ref="dataSource"/> <!-- 注入mybatis-config配置文件--> <property name="configLocation" value="classpath:config/mybatis-config.xml"/> <!-- 注入mapper--> <property name="mapperLocations" value="classpath:com/hdax/dao/*.xml"/> </bean> <!-- sqlSession--> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg ref="sqlSessionFactory"/> </bean> <!-- 动态代理mapper--> <mybatis:scan base-package="com.hdax.dao"/>
- mybatis-config.xml
3、Spring
- spring-service.xml
我们一般在这个文件中控制service层中的事情(AOP、事务都是在这里控制)
<!-- 扫描service包--> <context:component-scan base-package="com.hdax.service"/> <!-- 配置声明式事务--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">` <property name="dataSource" ref="dataSource"/> </bean> <!-- 事务注解 --> <tx:annotation-driven transaction-manager="transactionManager"/>
4、SpringMVC
- web.xml
在该文件主要注册调度中心与spring配置文件做连接
<!-- 注册Dispatcher--> <servlet> <servlet-name>spring-mvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <!-- 连接spring配置文件--> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/applicationContext.xml</param-value> </init-param> <!-- 启动级别--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring-mvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 过滤器用于解决乱码问题--> <filter> <filter-name>encoding</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>encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- session失效时间--> <session-config> <session-timeout>15</session-timeout> </session-config>
- spring-controller.xml
在该文件中主要控制controller配置视图解析器
<!-- 扫描controller--> <context:component-scan base-package="com.hdax.controller"/> <!-- 静态资源过滤--> <mvc:default-servlet-handler/> <!-- 注解驱动--> <mvc:annotation-driven/> <!-- 处理请求返回json字符串的中文乱码问题 --> <mvc:annotation-driven> <mvc:message-converters register-defaults="false"> <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json;characterEncoding=UTF-8</value> </list> </property> <property name="fastJsonConfig"> <bean class="com.alibaba.fastjson.support.config.FastJsonConfig"> <property name="serializerFeatures"> <array> <value>WriteDateUseDateFormat</value> <value>PrettyFormat</value> <value>QuoteFieldNames</value> <value>DisableCircularReferenceDetect</value> </array> </property> </bean> </property> </bean> </mvc:message-converters> </mvc:annotation-driven> <!-- 视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
5、整合
- applicationContext.xml
在该文件中引用其他层文件整合到一块
<!-- 扫描实体类 --> <context:component-scan base-package="com.hdax.pojo"/> <!-- dao--> <import resource="classpath:config/spring-dao.xml"/> <!-- service--> <import resource="classpath:config/spring-service.xml"/> <!-- controller--> <import resource="classpath:config/spring-controller.xml"/>