• springMVC+mybatis+spring整合案例


    1、web.xml

      a:配置spring监听,使web容器在启动时加载spring的applicationContext.xml

          <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
          </listener>

      b:配置contextConfigLocation指定applicationContext的位置,同时可以修改其名称

        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mybatis.xml</param-value>
          </context-param>

      c:配置springmvc的拦截器DispatcherServlet,同时可以修改其位置和名称

        <servlet>
            <servlet-name>Spring_MVC</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:spring-mvc.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
          </servlet>

      d:配置springmvc的拦截路径

       <!-- 
            配置拦截器拦截URL:
                1、(/):这种拦截方式会导致静态文件请求无法通过,但可以通过配置defaultServlet进行弥补
                2、(/*):错误的拦截方式,可以访问controller,但是无法访问JSP
          -->
          <servlet-mapping>
            <servlet-name>Spring_MVC</servlet-name>
            <url-pattern>/</url-pattern>
          </servlet-mapping>
          <!-- 
              弥补rest风格的拦截路径配置    
          -->
          <servlet-mapping>
            <servlet-name>default</servlet-name>
            <url-pattern>*.jpg</url-pattern>
          </servlet-mapping>

    2、applicationContext.xml

      a:自动扫描指定包下的注解(建议专门查一下这个标签)

        <context:component-scan base-package="com" />

      b:引入外部的properties文件(可选)

         <bean id="propertityConfigure" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
                <property name="location" value="classpath:jdbc.properties"/>
            </bean>

      c:配置数据连接池

         <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}" />         
            </bean>

      d:spring和mybatis整合(配置sqlSessionFactory)

         <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
                <!-- 必须的属性:dataSource -->
                <property name="dataSource" ref="datasource"/>
                <!-- 必须属性:加载mybatis配置文件() -->
                <property name="configLocation" value="classpath:mybatis-config.xml"></property>
                <!-- 自动扫描mapper.xml文件并进行注册,可以省略不写,不写的话需要在mybatis配置文件中通过mappers标签进行指定 -->  
                <property name="mapperLocations" value="classpath:com/mapper/*.xml"/>
            </bean>

      e:自动扫描DAO接口并进行sqlSessionFactory的注入和bean的创建

         <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
                <property name="basePackage" value="com.dao"/>
                <!-- 此属性可以不进行配置,不配置的情况下spring自动装配 -->
                <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
            </bean>

      f:事务管理(结合AOP进行切点织入的方式)

         <!-- 配置事务管理器 -->
            <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
                <property name="dataSource" ref="datasource"/>
            </bean>
            <!-- 指定管理的方法以及传播属性和隔离级别等等 -->
            <tx:advice id="txAdvice" transaction-manager="transactionManager">
                <tx:attributes>
                    <tx:method name="save*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
                </tx:attributes>
            </tx:advice>
            <!-- 使用AOP管理事务管理使用时机 -->
            <aop:config>
                <aop:pointcut id="serviceCut" expression="execution(* com.service.*.*(..))"/>
                <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceCut"/>
            </aop:config>

    3、spring-mvc.xml

      a:注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean,这是使用@Controller及@requestBody和@responseBody等注解的前提

    <mvc:annotation-driven/> 

      b:扫描Controller

    <context:component-scan base-package="com.controller"/>

      c:配置视图解析器

         <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                 <!-- 前缀 -->
                 <property name="prefix">
                     <value>/WEB-INF/jsp/</value>
                 </property>
                 <!-- 后缀 -->
                 <property name="suffix">
                     <value>.jsp</value>
                 </property>
            </bean>   

    4:mybatis-config.xml

       <?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>
            
        </configuration>
  • 相关阅读:
    js--事件
    js之table操作
    2019年目标
    history.back返回后输入框值丢失问题
    C++ 工程师养成 每日一题4.5 (迭代器遍历)
    C++ 工程师养成 每日一题fourth (reverse的使用)
    C++ 工程师养成 每日一题third (子数列排序)
    C++工程师养成 每日一题(string使用)
    C++工程师养成 每日一题(vector使用)
    运算符优先级
  • 原文地址:https://www.cnblogs.com/qiankun-site/p/5886597.html
Copyright © 2020-2023  润新知