本篇文章知识为了给自己巩固知识,如果文章中有错误的地方,欢迎各位大佬指出
导入jar包
先把三大框架的基本jar包导入进来,这里就没有指出了,然后我们先整合mybatis,mybatis提供了一个整合包,
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis.spring.version}</version>
</dependency>
整合思想:
其实就是把mybatis生产的DAO代理对象,放到IOC容器中即可,这样的话我们就可以通过Spring 的DI注入使用了
配置spring
<!--导入MySQL的连接配置文件-->
<context:property-placeholder location="classpath:mysql.properties"/>
<!--配置连接池-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jb.driverClassName}"/>
<property name="url" value="${jb.url}"/>
<property name="password" value="${jb.username}"/>
<property name="username" value="${jb.password}"/>
</bean>
<!--整合mybatis-->
<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
</bean>
<!--让mybatis管理dao的所有接口-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.itzijin.dao"/>
</bean>
SqlSessionFactoryBean该类是mybatis整合包下的,注意别导错了,到这里myabtis就跟spring 整合完了
Spirng整合SpringMVC
**整合思想:SpringMVC本就是Spirng中的一员,根本就不需要整合,但是我们的Web工程启动后我们只加载了SpringMVC的配置文件,那么也就是说,我们即使配置好了Spring 我们在Controller层也用不了,因为Spring 的配置文件根本就没有加载,那么自然也不会存在什么IOC容器,我们需要做的就是让WEB工程在启动的时候也去加载spring的配置文件,那么我们就可以使用spring的父IOC容器了,(子IOC容器就是SpringMVC的),我们需要更改web.xml文件
**
<!-- 解决post乱码 -->
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 指定加载的配置文件 ,通过参数contextConfigLocation加载-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
**上面是我们之前的单独使用SpringMVC时的web.xml配置文件,但是我们要想在web工程启动的时候就去加载Spring的配置文件的话,我们需要使用一个spring提供的一个监听器,它会监听servletContext容器的创建与销毁
org.springframework.web.context.ContextLoaderListener 这就是那个监听器,下面是修改之后的web.xml配置文件
**
<!-- 监听器监听其他的spring配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 解决post乱码 -->
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 指定加载的配置文件 ,通过参数contextConfigLocation加载-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
**其实就是在原来的web.xml文件上加了一个监听器,该监听器默认会去WEB-INF下去找applicationContext.xml配置文件,所以我们通过
<context-param>
<param-name>contextConfigLocation</param-name>
<!--指定配置文件的路径-->
<param-value>classpath*:spring/applicationContext-*.xml</param-value>
</context-param>
该配置来指定spring配置文件的目录
**
总结
其实三大框架整合非常容易,整合mybatis我们只需要让mybatis生产的代理对象放到IOC容器中,这样我们就是在service层来注入mybatis生产的dao代理对象了,而spring与springMVC本来就是一家的,根本就不需要进行整合,只需要让web工程启动的使用也去把spring的配置文件给加载了,这样controller层也能使用spring来注入service层了