• Spring4.2+SpringMVC+Mybatis3.4的集成(转-)


    文章转自 http://blog.csdn.net/jimolangge123/article/details/49210363
    首先说明一下Web.xml中配置项的执行过程: <context-param>  <listenser> <filter>  <servlet>
    首先初始化Spring的bean工厂,通过加载beans.xml初始化,其次通过spring的listener来监听,再次当请求时拦截并编码为UTF-8,最后由DispatcherServlet处理并分发到controller上
     
    一、 项目结构图如下:
     
    此项目主要目的是在于集成,主要包括一下步骤:
    1. Jar包的加入

    2. Web.xml的配置

    3. SpringMVC的配置文件的创建

    4. spring配置文件的创建

    5. Model的建立

    6. Controller的建立

    7. Service的建立

    8. Dao的建立


    二、具体的详细步骤如下:
    1. Jar包的加入,包括:spring、MyBatis、log、spring-mybatis、oracle。具体的jar包如下图所示,并简要的说明每个jar的作用。
     
    2. 需要在Web.xml文件中配置每个框架的入口。如下所示:
     
    [java] view plain copy
     
     print?
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    3.   xmlns="http://java.sun.com/xml/ns/javaee"   
    4.   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
    5.   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"   
    6.   id="WebApp_ID" version="2.5">  
    7.   <display-name>ssm</display-name>  
    8.   <!-- 初始化spring的配置文件 -->  
    9.   <context-param>  
    10.    <param-name>contextConfigLocation</param-name>  
    11.    <param-value>classpath*:conf/beans.xml</param-value>  
    12.   </context-param>  
    13.   <listener>  
    14.    <description>spring监听器</description>  
    15.    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    16.   </listener>  
    17.   <!-- 配置springmvc的入口 -->  
    18.   <servlet>  
    19.    <servlet-name>action</servlet-name>  
    20.    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    21.   <init-param>  
    22.    <param-name>contextConfigLocation</param-name>  
    23.    <param-value>classpath*:conf/spring-mvc.xml</param-value>  
    24.   </init-param>  
    25.   <load-on-startup>1</load-on-startup>  
    26.   </servlet>  
    27.   <servlet-mapping>  
    28.    <servlet-name>action</servlet-name>  
    29.    <url-pattern>/</url-pattern>  
    30.   </servlet-mapping>  
    31. <!—springMVC配置结束 -->  
    32.   <!-- 拦截器,对每个请求处理字符编码为UTF-8 -->  
    33.   <filter>  
    34.    <filter-name>encodingFilter</filter-name>  
    35.    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
    36.    <init-param>  
    37.     <param-name>encoding</param-name>  
    38.     <param-value>UTF-8</param-value>  
    39.    </init-param>  
    40.   </filter>  
    41.   <filter-mapping>  
    42.    <filter-name>encodingFilter</filter-name>  
    43.    <url-pattern>/</url-pattern>  
    44.   </filter-mapping>  
    45. <!-- 拦截器结束-->  
    46. </web-app>  


    首先说明一下Web.xml中配置项的执行过程: <context-param>  <listenser> <filter>  <servlet>
    首先初始化Spring的bean工厂,通过加载beans.xml初始化,其次通过spring的listener来监听,再次当请求时拦截并编码为UTF-8,最后由DispatcherServlet处理并分发到controller上
    3. springMVC的配置文件
    [java] view plain copy
     
     print?
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <beans xmlns="http://www.springframework.org/schema/beans"  
    3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    4.     xmlns:mvc="http://www.springframework.org/schema/mvc"  
    5.     xmlns:p="http://www.springframework.org/schema/p"  
    6.     xmlns:context="http://www.springframework.org/schema/context"  
    7.     xsi:schemaLocation="  
    8.         http://www.springframework.org/schema/beans  
    9.         http://www.springframework.org/schema/beans/spring-beans.xsd  
    10.         http://www.springframework.org/schema/context  
    11.         http://www.springframework.org/schema/context/spring-context.xsd  
    12.         http://www.springframework.org/schema/mvc  
    13.         http://www.springframework.org/schema/mvc/spring-mvc.xsd">  
    14.     <!-- 开启注解扫描 -->  
    15.     <mvc:annotation-driven/>  
    16.     <!--  annotation默认的方法映射适配器 ,下面两个就是  <mvc:annotation-driven/>-->  
    17.     <!-- <bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />  
    18.     <bean id="handlerAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> -->  
    19.       
    20.     <!-- 指定扫描包 -->  
    21.     <context:component-scan base-package="com.sm.controller" />  
    22.       
    23.     <!-- 配置视图处理 -->  
    24.     <bean id="viewResolver"  
    25.         class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
    26.         <property name="prefix" value="/WEB-INF/view/" />  
    27.         <property name="suffix" value=".jsp" />  
    28.     </bean>  
    29.   
    30.     <!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 -->  
    31.     <bean id="multipartResolver"  
    32.         class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
    33.         <property name="defaultEncoding" value="utf-8" />  
    34.         <property name="maxUploadSize" value="10485760000" />  
    35.         <property name="maxInMemorySize" value="40960" />  
    36.     </bean>  
    37. </beans>  
     
    4. spring的配置文件
    [java] view plain copy
     
     print?
    1. <beans xmlns="http://www.springframework.org/schema/beans"  
    2.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
    3.  xmlns:util="http://www.springframework.org/schema/util" xmlns:context="http://www.springframework.org/schema/context"  
    4.  xsi:schemaLocation="  
    5.         http://www.springframework.org/schema/beans  
    6.         http://www.springframework.org/schema/beans/spring-beans.xsd  
    7.         http://www.springframework.org/schema/context  
    8.         http://www.springframework.org/schema/context/spring-context.xsd  
    9.   http://www.springframework.org/schema/util   
    10.   http://www.springframework.org/schema/util/spring-util.xsd">  
    11.  <context:annotation-config />  
    12.  <!-- 扫描service,dao -->  
    13.  <context:component-scan base-package="com.sm">  
    14.   <context:exclude-filter type="regex"  
    15.    expression="com.sm.controller" />  
    16.  </context:component-scan>  
    17.  <!-- ////////////////////////配置数据源///////////////////////// -->  
    18.  <!-- 把.properties文件引入xml文件中 -->  
    19.   
    20.   
    21.   
    22.   
    23.  <!-- 第一种方式,比较方便 -->  
    24.  <!-- <util:properties location="classpath*:conf/jdbc.properties" /> -->  
    25.  <!-- 第二中方式 -->  
    26.  <!-- <context:property-placeholder location="classpath*:conf/jdbc.properties"/> -->  
    27.  <!-- 第三种方式 ,稍复杂点 -->  
    28.  <bean id="propertyConfigurer"  
    29.   class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
    30.   <property name="locations" value="classpath*:conf/jdbc.properties" />  
    31.   <!-- <property name="locations"> <list> <value>classpath*:conf/jdbc.properties</value>   
    32.    </list> </property> -->  
    33.  </bean>  
    34.   
    35.   
    36.   
    37.   
    38.  <!-- 将Mybatis的DataSource,sessionFactory以及Transaction受控于Spring容器 -->  
    39.  <!-- 数据源有多种:1,dbcp class="" 2,c3p0, class="" 3,alibaba的Druid(德鲁伊)数据源 class="com.alibaba.druid.pool.DruidDataSource"   
    40.   4,spring class="org.springframework.jdbc.datasource.DriverManagerDataSource" -->  
    41.  <bean id="dataSource"  
    42.  class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
    43.   <property name="driverClassName" value="${jdbc.driverClassName}" />  
    44.   <property name="url" value="${jdbc.url}" />  
    45.   <property name="username" value="${jdbc.username}" />  
    46.   <property name="password" value="${jdbc.password}" />  
    47.   <!-- 初始化连接大小 -->  
    48.   <property name="initialSize" value="0" />  
    49.   <!-- 连接池最大使用连接数量 -->  
    50.   <property name="maxActive" value="20" />  
    51.   <!-- 连接池最大空闲 -->  
    52.   <property name="maxIdle" value="20" />  
    53.   <!-- 连接池最小空闲 -->  
    54.   <property name="minIdle" value="0" />  
    55.   <!-- 获取连接最大等待时间 -->  
    56.   <property name="maxWait" value="60000" />  
    57.   <property name="validationQuery" value="${validationQuery}" />  
    58.   <property name="testOnBorrow" value="false" />  
    59.   <property name="testOnReturn" value="false" />  
    60.   <property name="testWhileIdle" value="true" />  
    61.   <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->  
    62.   <property name="timeBetweenEvictionRunsMillis" value="60000" />  
    63.   <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->  
    64.   <property name="minEvictableIdleTimeMillis" value="25200000" />  
    65.   <!-- 打开removeAbandoned功能 -->  
    66.   <property name="removeAbandoned" value="true" />  
    67.   <!-- 1800秒,也就是30分钟 -->  
    68.   <property name="removeAbandonedTimeout" value="1800" />  
    69.   <!-- 关闭abanded连接时输出错误日志 -->  
    70.   <property name="logAbandoned" value="true" />  
    71.   <!-- 监控数据库 -->  
    72.   <property name="filters" value="mergeStat" />  
    73.  </bean>  
    74.  <!-- ////////////配置Mybatis/////////////////////////////////// -->  
    75.  <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
    76.   <property name="dataSource" ref="dataSource" />  
    77.   <!-- <property name="configLocation" value="classpath*:conf/sqlMapConfig.xml"   
    78.    /> -->  
    79.   <property name="mapperLocations">  
    80.    <list>  
    81.     <value>classpath*:conf/com/dao/mapper/*.map.xml</value>  
    82.    </list>  
    83.   </property>  
    84.  </bean>  
    85.   
    86.   
    87.   
    88.   
    89.  <!-- 配置扫描接口 -->  
    90.  <!-- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> value指明接口所在的包中   
    91.   <property name="basePackage" value="com.sm.dao" /> <property name="sessionFactory"   
    92.   ref="sessionFactory" /> </bean> -->  
    93. </beans>  
     
    5. properties文件
    jdbc.driverClassName=oracle.jdbc.OracleDriver
    jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
    jdbc.username=scott
    jdbc.password=tiger
    validationQuery=SELECT 1
     
    6. model
    [java] view plain copy
     
     print?
    1. package com.sm.controller;  
    2.   
    3. import javax.annotation.Resource;  
    4.   
    5. import org.springframework.stereotype.Controller;  
    6. import org.springframework.web.bind.annotation.RequestMapping;  
    7. import com.sm.model.User;  
    8. import com.sm.service.UserService;  
    9.   
    10. @Controller  
    11. @RequestMapping("/user")  
    12. public class UserController {  
    13.    
    14.  private UserService userService;  
    15.  @Resource  
    16.  public void setUserService(UserService userService) {  
    17.   this.userService = userService;  
    18.  }  
    19.  @RequestMapping("/add")  
    20.  public String addUser(User user){  
    21.   userService.addUser(user);  
    22.   return "success";  
    23.  }  
    24.  @RequestMapping("/toAddUser")  
    25.  public String toAddUser(){  
    26.   return "userAdd";  
    27.  }  
    28. }  
     
    7. service
    [java] view plain copy
     
     print?
    1. package com.sm.service;  
    2.   
    3. import javax.annotation.Resource;  
    4.   
    5. import org.springframework.stereotype.Service;  
    6. import com.sm.dao.UserDao;  
    7. import com.sm.model.User;  
    8.   
    9. @Service  
    10. public class UserService {  
    11.   
    12.  @Resource  
    13.  private UserDao userDao ;  
    14.  public void addUser(User user){  
    15.   userDao.add(user);  
    16.  }  
    17. }  
     
    8. dao
    [java] view plain copy
     
     print?
    1. package com.sm.dao;  
    2.   
    3. import javax.annotation.Resource;  
    4.   
    5. import org.apache.ibatis.session.SqlSession;  
    6. import org.apache.ibatis.session.SqlSessionFactory;  
    7. import org.springframework.stereotype.Repository;  
    8.   
    9. import com.sm.model.User;  
    10.   
    11. @Repository  
    12. public class UserDao {  
    13.   
    14.  @Resource  
    15.  private SqlSessionFactory sessionFactory ;  
    16.    
    17.  public void add(User user){  
    18.   System.out.println("添加user"+user.getId()+"成功");  
    19.   SqlSession session = sessionFactory.openSession();  
    20.   session.insert("add", user);  
    21.  }  
    22. }  
     
    访问:http://localhost:8080/ssm/user/toAddUser

     
    最重要的环境的配置
    水平有限,请多多指教,共同学习共同成长!!转载注明出处!!!!
     
    源码下载:点击打开链接
  • 相关阅读:
    如何将应用安装到/system/app下
    WPF Perf: RenderCapability.Tier & DesiredFrameRate
    DataGridComboBoxColumn为什么就不能在Binding的时候引用其他Named Element了呢?
    A366T使用技巧
    在XAML里面引用枚举值的注意点
    高斯消元bzoj1013球形空间产生器
    欧拉函数bzoj2818简单推导
    链剖进阶ing填坑NOIP2013货车运输
    .net 2.0 BackgroundWorker 文章三篇
    19号晚21号上午
  • 原文地址:https://www.cnblogs.com/shuaiandjun/p/7242523.html
Copyright © 2020-2023  润新知