zoukankan      html  css  js  c++  java
  • Spring MVC + Spriing + MyBatis整合,写给新人

    开发环境:

    开发工具:MyEclipse 8.6

    数据库:MySQL

    操作系统:WIN8.1

    Jar包:

    Spirng和SpringMVC版本:3.2.9

    MyBatis版本:3.2.8

    其他关联Jar包如图:

     ---------------------------------------------------------------------------------

    OK , 准备的东西齐全了 。这就动手,先用MyEclipse新建一个网站工程,然后将所有的Jar包放到WebRoot/WEB-INF/lib文件夹下面。

    首先配置web.xml文件,增加Spring的支持

      <listener>
          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      
      <context-param>
          <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:applicationDataSource.xml</param-value>
      </context-param>

    接着在src下建立

    applicationDataSource.xml

    jdbc.properties文件

    mybatis-config.xml

    以上三个文件

    mybatis-config.xml 文件自然就是MyBatis的配置了,其实只用到了拦截器,后面我们会看到。jdbc.properties文件里面配置具体的数据库信息,在applicationDataSource.xml文件中读取
    先看jdbc.properties的内容:

    这里简单配置了数据库的一些信息,我们现在看applicationDataSource.xml文件中的配置

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans
     3     xmlns="http://www.springframework.org/schema/beans"
     4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     5     xmlns:p="http://www.springframework.org/schema/p"
     6     xmlns:aop="http://www.springframework.org/schema/aop"
     7     xmlns:tx="http://www.springframework.org/schema/tx"
     8     xmlns:mvc="http://www.springframework.org/schema/mvc"
     9     xsi:schemaLocation="
    10     http://www.springframework.org/schema/beans 
    11     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    12     http://www.springframework.org/schema/aop
    13     http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
    14     http://www.springframework.org/schema/tx
    15     http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    16     ">
    17   <!-- 这里我用了aop:aspectj-autoproxy,如果使用aop有对类的配置的话就派上用场了。个人习惯而已 -->
    18     <aop:aspectj-autoproxy proxy-target-class="true"/>
    19     
    20     <!-- 载入jdbc.properties文件 -->
    21     <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    22         <property name="locations">
    23             <list><value>classpath:jdbc.properties</value></list>
    24         </property>
    25     </bean>
    26     
    27    <!-- 配置数据源 ,注意value部分的配置写法 -->
    28     <bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource"
    29         destroy-method="close">
    30         <property name="driverClassName" value="${driverClassName}" />
    31         <property name="url" value="${url}" />
    32         <property name="username" value="${username}" />
    33         <property name="password" value="${password}" />
    34         <!-- 数据库连接池保持的最小连接数 -->
    35         <property name="minIdle" value="${minIdle}" />
    36         <!-- 数据库连接池保持的最大连接数 -->
    37         <property name="maxIdle" value="${maxIdle}" />
    38         <!--
    39             当数据库连接因为某种原因断掉之后,再重新从连接池中拿另外一个连接时实际上这个连接可能
    40             已经无效,所以为了确保所拿到的连接全都有效需要在获取连接,返回连接以及连接空闲时进行 有效性验证
    41             下面3个设置为ture时进行验证,默认为false
    42         -->
    43         <!-- 取得连接时是否进行有效性验证 -->
    44         <property name="testOnBorrow" value="true" />
    45         <!-- 返回连接时是否进行有效性验证 -->
    46         <property name="testOnReturn" value="true" />
    47         <!-- 连接空闲时是否进行有效性验证 -->
    48         <property name="testWhileIdle" value="true" />
    49 
    50     </bean>
    51   <!-- 配置sqlSessionFactory ,注意mapperLocations的配置,这个路径里面存放了MyBatis的Mapper文件,configLocation则加载了mybatis-config.xml文件,不需要的可以不配置 -->
    52     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    53         <property name="configLocation" value="classpath:mybatis-config.xml"/>
    54          <property name="dataSource" ref="datasource"/>
    55          <property name="mapperLocations">
    56              <list>
    57                  <value>classpath:org/springmvc_demo/mapper/*.xml</value>
    58              </list>
    59          </property>
    60     </bean>
    61     
    62     <!-- JDBC的事务管理 -->
    63     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    64         <property name="dataSource" ref="datasource"/>
    65     </bean>
    66     
    67     <!-- 事务管理对应的方法规则 -->
    68     <tx:advice transaction-manager="transactionManager" id="txAdvice">
    69         <tx:attributes>
    70             <tx:method name="add*" propagation="REQUIRED"/>
    71             <tx:method name="save*" propagation="REQUIRED"/>
    72             <tx:method name="update*" propagation="REQUIRED"/>
    73             <tx:method name="modify*" propagation="REQUIRED"/>
    74             <tx:method name="del*" propagation="REQUIRED"/>
    75             <tx:method name="delete*" propagation="REQUIRED"/>
    76             <tx:method name="find*" propagation="SUPPORTS" read-only="true"/>
    77             <tx:method name="query*" propagation="SUPPORTS" read-only="true"/>
    78             <tx:method name="*" read-only="true"/>
    79         </tx:attributes>
    80     </tx:advice>
    81     
    82     <aop:config>
    83        <!-- 这里的配置应用事务管理的包名我提前准备好了,根据自己的实际情况修改包名,但是事物管理还是建议在业务逻辑层控制 -->
    84 <aop:pointcut expression="execution(* org.springmvc_demo.service.impl.*.*(..))" id="transactionAop"/> 85 <aop:advisor advice-ref="txAdvice" pointcut-ref="transactionAop"/> 86 </aop:config> 87  <!-- 我们需要一个 sqlSessionTemplate对象,使用看之后的代码配置-->
    88 <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> 89 <constructor-arg index="0" ref="sqlSessionFactory"/> 90 </bean> 91 92 </beans>

     Spring的配置到此结束,我们在来到web.xml中增加SpringMVC的配置。

     这里配置文件我没有使用默认的路径,而是将springmvc的配置文件放到了src根目录下,<load-on-startup>1</load-on-startup>这个一定要加上。注意url-pattern的配置,不要修改。

     1 <servlet>
     2       <servlet-name>springMVC</servlet-name>
     3       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     4       <init-param>
     5         <param-name>contextConfigLocation</param-name>
     6         <param-value>classpath*:applicationContext.xml</param-value>      
     7       </init-param>
     8       <load-on-startup>1</load-on-startup>
     9   </servlet>
    10   
    11   <servlet-mapping>
    12       <servlet-name>springMVC</servlet-name>
    13       <url-pattern>/</url-pattern>
    14   </servlet-mapping>

    web.xml文件修改完毕后,我们来看SpringMVC的配置文件的内容

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans
     3     xmlns="http://www.springframework.org/schema/beans"
     4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     5     xmlns:p="http://www.springframework.org/schema/p"
     6     xmlns:context="http://www.springframework.org/schema/context"
     7     xmlns:mvc="http://www.springframework.org/schema/mvc"
     8     xsi:schemaLocation="
     9     http://www.springframework.org/schema/beans 
    10     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    11     http://www.springframework.org/schema/context
    12     http://www.springframework.org/schema/context/spring-context-3.0.xsd
    13     http://www.springframework.org/schema/mvc
    14     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    15     ">
    16     
    17     <!-- 包扫描的配置放在了SpringMVC加载的配置文件中,否则将无法正常工作 -->
    18     <context:component-scan base-package="org.springmvc_demo"/>
    19     <mvc:annotation-driven/>
    20     
    21     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    22         <property name="prefix" value="/"/>
    23         <property name="suffix"  value=".jsp"/>
    24         <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    25     </bean>
    26 </beans>

    OK ,这里的配置就到此为止,需要其他功能的自行配置,唯一需要注意的是我没有在这里对静态资源做配置,这样的话html,css等静态资源按照上面web.xml中的配置将无法正常使用。所以我们还需要再次返回web.xml增加对静态资源的配置。

     1   <servlet-mapping>
     2       <servlet-name>default</servlet-name>
     3       <url-pattern>*.html</url-pattern>
     4   </servlet-mapping>
     5   
     6   <servlet-mapping>
     7       <servlet-name>default</servlet-name>
     8       <url-pattern>*.htm</url-pattern>
     9   </servlet-mapping>
    10   
    11   <servlet-mapping>
    12       <servlet-name>default</servlet-name>
    13       <url-pattern>*.js</url-pattern>
    14   </servlet-mapping>
    15   
    16   <servlet-mapping>
    17       <servlet-name>default</servlet-name>
    18       <url-pattern>*.css</url-pattern>
    19   </servlet-mapping>
    20   
    21   <servlet-mapping>
    22       <servlet-name>default</servlet-name>
    23       <url-pattern>*.jpg</url-pattern>
    24   </servlet-mapping>
    25   
    26    <servlet-mapping>
    27       <servlet-name>default</servlet-name>
    28       <url-pattern>*.png</url-pattern>
    29   </servlet-mapping>
    30   
    31    <servlet-mapping>
    32       <servlet-name>default</servlet-name>
    33       <url-pattern>*.gif</url-pattern>
    34   </servlet-mapping>

    加上以上的配置,静态资源就可以正常访问了。
    到此为止,SpringMVC +Spring + MyBatis的配置文件就基本配置完毕了。

  • 相关阅读:
    DAY 5 搜索
    DAY 4 基础算法
    P2114 [NOI2014]起床困难综合症
    UVA10140 Prime Distance
    day 2 DP专场
    DAY 3 数论专场
    day 2 下午 骑士 基环树+树形DP
    day 1 晚上 P2824 [HEOI2016/TJOI2016]排序 线段树
    帝国后台加网站地图
    手风琴效果
  • 原文地址:https://www.cnblogs.com/morlin/p/4300744.html
Copyright © 2011-2022 走看看