1. 程式人生 > >SpringMVC整合Mybatis配置文件的步驟

SpringMVC整合Mybatis配置文件的步驟

suffix control app -- ali require drive 最終 pro

SpringMVC和MyBatis整合

1、整合DAO層,即Mapper接口配置在Spring容器中
    1、創建MyBatis/sqlMapConfig.xml 配置文件
        1、配置別名
             <!-- 對象別名 -->  
            <typeAliases>  
                <typeAlias type="com.lanhuigu.mybatis.entity.User" alias="User"/>  
            </typeAliases>
        2、配置數據源(不需要)
        3、配置Mapper全局環境文件(不需要)
        但是由於使用SpringMVC整合,所以只配置第一步,其他放到Spring容器中配置
    2、配置DAO,新建spring/application-dao.xml 配置文件
        1、配置數據源(包含加載jdbc.properties文件)
            <!-- 配置數據源 -->
            <context:property-placeholder location="classpath:db.properties"/>
        
            <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
                destroy-method="close">
                <property name="driverClassName" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}" />
                <!-- 初始化連接大小 -->
                <property name="initialSize" value="${initialSize}"></property>
                <!-- 連接池最大數量 -->
                <property name="maxActive" value="${maxActive}"></property>
                <!-- 連接池最大空閑 -->
                <property name="maxIdle" value="${maxIdle}"></property>
                <!-- 連接池最小空閑 -->
                <property name="minIdle" value="${minIdle}"></property>
                <!-- 獲取連接最大等待時間 -->
                <property name="maxWait" value="${maxWait}"></property>
            </bean>
        2、配置SqlSessionFactory(配置Bean、加載mybatsi全局配置文件屬性)
            <!-- 配置SqlSessionFactory -->
            <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
                <property name="dataSource" ref="dataSource" />
                <!-- 加載Mybatis全局配置文件 -->
                <property name="mapperLocations" value="classpath:mybatis/sqlMapConfig.xml"></property>
            </bean>
        3、配置Mapper掃描器(配置掃描包、SqlSessionFactoryBeanName屬性)
            <!-- 配置mapper接口掃描器 -->
            <bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
                <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
                <property name="basePackage" value="cn.com.**.dao" />
            </bean>
            
2、整合Service層
    創建spring/application-service.xml
    1、配置serviceImpl實現類的Bean
        <bean id="itemServiceImpl" class="cn.itcast.ssm.service.impl.ItemServiceImpl"></bean>
    2、配置事務管理(配置Bean的Class、數據源屬性)
        <!-- (事務管理)transaction manager, use JtaTransactionManager for global tx -->
        <bean id="transactionManager"
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource" />
        </bean>
    3、配置通知
        <!-- 通知,限定業務層Service的方法名必須以下面的開頭,並通知給事務管理器 -->
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
            <tx:attributes>
                <tx:method name="save*" propagation="REQUIRED"/>
                <tx:method name="delete*" propagation="REQUIRED"/>
                <tx:method name="insert*" propagation="REQUIRED"/>
                <tx:method name="update*" propagation="REQUIRED"/>
                <tx:method name="find*" propagation="SUPPORTS" read-only="true"/>
                <tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
            </tx:attributes>
        </tx:advice>
    4、配置aop
        <!-- aop配置,因為AOP要調用通知 
        execution(* cn.itcast.ssm.service.impl.*.*(..)),表示
        按照cn.itcast.ssm.service.impl包中所有的類名所有的方法名不管什麽參數,(..)表示不管什麽參數
        -->
        <aop:config>
            <aop:advisor advice-ref="txAdvice" pointcut="execution(* cn.itcast.ssm.service.impl.*.*(..))"/>
        </aop:config>
    
3、配置SpringMVC
    1、配置組件掃描包
        <context:component-scan base-package="cn.itcast.ssm.controller" />
    2、配置mvc註解驅動器(映射器和掃描器)
        <mvc:annotation-driven />
    3、配置視圖解析器
        <!-- 配置視圖解析器(ViewResover) -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp/jsp1/"/>
            <property name="suffix" value=".jsp"/>
        </bean>
4、配置前端控制器,在web.xml文件中修改
    <!-- 前端控制器 -->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 初始化參數配置
        contextConfigLocation配置springmvc加載的配置文件(配置HandlerMapping、HandlerAdapter)
         如果不配置contextConfigLocation,默認加載的是/WEB-INF/servlet名稱-servlet.xml(springmvc-servlet.xml)
         -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <!--  
        第一種:*.action,訪問.action結尾的DispatcherServlet解析
        第二種:/,訪問所有的地址,都由DispatcherServlet解析,對於靜態文件需要配置不讓其解析
        第三種:/*,struts習慣使用,springmvc不管用,使用這種配置,最終要轉發到一個jsp頁面時,
                仍然由DispatcherServlet解析jsp地址,不能根據jsp地址轉到Handler,會報錯
        -->
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
5、加載Spring容器
    1、加載Mapper、service、controller配置到容器中
    2、加載監聽器
    <!-- 加載Spring容器 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/Classes/spring/application-*.xml</param-value>
    </context-param>
    
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    
    

SpringMVC整合Mybatis配置文件的步驟