MAVE项目整合SSM框架

本文详细介绍如何将MyBatis、Spring和SpringMVC三大框架进行整合,包括导入必要jar包、配置Spring、整合MyBatis及SpringMVC,以及解决Web工程启动时的配置问题。

本篇文章知识为了给自己巩固知识,如果文章中有错误的地方,欢迎各位大佬指出

导入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层了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值