文章转自 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文件中配置每个框架的入口。如下所示:
 
  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的配置文件

  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. <context:component-scan base-package="com.sm.controller" />
  21. <!-- 配置视图处理 -->
  22. <bean id="viewResolver"
  23. class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  24. <property name="prefix" value="/WEB-INF/view/" />
  25. <property name="suffix" value=".jsp" />
  26. </bean>
  27. <!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 -->
  28. <bean id="multipartResolver"
  29. class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  30. <property name="defaultEncoding" value="utf-8" />
  31. <property name="maxUploadSize" value="10485760000" />
  32. <property name="maxInMemorySize" value="40960" />
  33. </bean>
  34. </beans>
 
4. spring的配置文件
  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. <!-- <util:properties location="classpath*:conf/jdbc.properties" /> -->
  21. <!-- 第二中方式 -->
  22. <!-- <context:property-placeholder location="classpath*:conf/jdbc.properties"/> -->
  23. <!-- 第三种方式 ,稍复杂点 -->
  24. <bean id="propertyConfigurer"
  25. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  26. <property name="locations" value="classpath*:conf/jdbc.properties" />
  27. <!-- <property name="locations"> <list> <value>classpath*:conf/jdbc.properties</value>
  28. </list> </property> -->
  29. </bean>
  30. <!-- 将Mybatis的DataSource,sessionFactory以及Transaction受控于Spring容器 -->
  31. <!-- 数据源有多种:1,dbcp class="" 2,c3p0, class="" 3,alibaba的Druid(德鲁伊)数据源 class="com.alibaba.druid.pool.DruidDataSource"
  32. 4,spring class="org.springframework.jdbc.datasource.DriverManagerDataSource" -->
  33. <bean id="dataSource"
  34. class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  35. <property name="driverClassName" value="${jdbc.driverClassName}" />
  36. <property name="url" value="${jdbc.url}" />
  37. <property name="username" value="${jdbc.username}" />
  38. <property name="password" value="${jdbc.password}" />
  39. <!-- 初始化连接大小 -->
  40. <property name="initialSize" value="0" />
  41. <!-- 连接池最大使用连接数量 -->
  42. <property name="maxActive" value="20" />
  43. <!-- 连接池最大空闲 -->
  44. <property name="maxIdle" value="20" />
  45. <!-- 连接池最小空闲 -->
  46. <property name="minIdle" value="0" />
  47. <!-- 获取连接最大等待时间 -->
  48. <property name="maxWait" value="60000" />
  49. <property name="validationQuery" value="${validationQuery}" />
  50. <property name="testOnBorrow" value="false" />
  51. <property name="testOnReturn" value="false" />
  52. <property name="testWhileIdle" value="true" />
  53. <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
  54. <property name="timeBetweenEvictionRunsMillis" value="60000" />
  55. <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
  56. <property name="minEvictableIdleTimeMillis" value="25200000" />
  57. <!-- 打开removeAbandoned功能 -->
  58. <property name="removeAbandoned" value="true" />
  59. <!-- 1800秒,也就是30分钟 -->
  60. <property name="removeAbandonedTimeout" value="1800" />
  61. <!-- 关闭abanded连接时输出错误日志 -->
  62. <property name="logAbandoned" value="true" />
  63. <!-- 监控数据库 -->
  64. <property name="filters" value="mergeStat" />
  65. </bean>
  66. <!-- ////////////配置Mybatis/////////////////////////////////// -->
  67. <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  68. <property name="dataSource" ref="dataSource" />
  69. <!-- <property name="configLocation" value="classpath*:conf/sqlMapConfig.xml"
  70. /> -->
  71. <property name="mapperLocations">
  72. <list>
  73. <value>classpath*:conf/com/dao/mapper/*.map.xml</value>
  74. </list>
  75. </property>
  76. </bean>
  77. <!-- 配置扫描接口 -->
  78. <!-- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> value指明接口所在的包中
  79. <property name="basePackage" value="com.sm.dao" /> <property name="sessionFactory"
  80. ref="sessionFactory" /> </bean> -->
  81. </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
  1. package com.sm.controller;
  2. import javax.annotation.Resource;
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import com.sm.model.User;
  6. import com.sm.service.UserService;
  7. @Controller
  8. @RequestMapping("/user")
  9. public class UserController {
  10. private UserService userService;
  11. @Resource
  12. public void setUserService(UserService userService) {
  13. this.userService = userService;
  14. }
  15. @RequestMapping("/add")
  16. public String addUser(User user){
  17. userService.addUser(user);
  18. return "success";
  19. }
  20. @RequestMapping("/toAddUser")
  21. public String toAddUser(){
  22. return "userAdd";
  23. }
  24. }
 
7. service
  1. package com.sm.service;
  2. import javax.annotation.Resource;
  3. import org.springframework.stereotype.Service;
  4. import com.sm.dao.UserDao;
  5. import com.sm.model.User;
  6. @Service
  7. public class UserService {
  8. @Resource
  9. private UserDao userDao ;
  10. public void addUser(User user){
  11. userDao.add(user);
  12. }
  13. }
 
8. dao
  1. package com.sm.dao;
  2. import javax.annotation.Resource;
  3. import org.apache.ibatis.session.SqlSession;
  4. import org.apache.ibatis.session.SqlSessionFactory;
  5. import org.springframework.stereotype.Repository;
  6. import com.sm.model.User;
  7. @Repository
  8. public class UserDao {
  9. @Resource
  10. private SqlSessionFactory sessionFactory ;
  11. public void add(User user){
  12. System.out.println("添加user"+user.getId()+"成功");
  13. SqlSession session = sessionFactory.openSession();
  14. session.insert("add", user);
  15. }
  16. }
 
访问:http://localhost:8080/ssm/user/toAddUser

 
最重要的环境的配置
水平有限,请多多指教,共同学习共同成长!!转载注明出处!!!!
 
源码下载:点击打开链接

Spring4.2+SpringMVC+Mybatis3.4的集成(转-)的更多相关文章

  1. Spring集成Mybatis,spring4.x整合Mybatis3.x

    Spring集成Mybatis,spring4.x整合Mybatis3.x ============================== 蕃薯耀 2018年3月14日 http://www.cnblo ...

  2. spring4.1.3+springmvc+mybatis3.2.1整合

    注意:这里使用了mybatis3.2.1版本,刚开始用了3.4.1的版本,会报一个很奇怪的错(java.lang.AbstractMethodError: org.mybatis.spring.tra ...

  3. 在spring+springMvc+mabatis框架下集成swagger

    我是在ssm框架下集成swagger的,具体的ssm搭建可以看这篇博文: Intellij Idea下搭建基于Spring+SpringMvc+MyBatis的WebApi接口架构 本项目的GitHu ...

  4. Spring+SpringMVC+Mybatis(SSM)框架集成搭建

    Spring+SpringMVC+Mybatis框架集成搭建教程 一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以 ...

  5. springMVC和spring的集成

    主要是2点 1.web.xml里 配置spring所需的listener 2. 新增applicationContext.xml, 配置注入的bean 3. 使用注解获取bean @Resource ...

  6. SpringMVC+Spring+Mybatis框架集成

    一.基本概念 1.Spring      Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-O ...

  7. 第六次课:springMVC与spring的集成

    spring在项目中起到了管理bean的作用,即可以通过配置,让系统自动创建所需的对象,通过一定的方式引用系统创建的对象,对象的创建和引用都是由spring自动完成的,用户不必参与,可以直接引用. 实 ...

  8. SSM整合(三):Spring4与Mybatis3与SpringMVC整合

    源码下载 SSMDemo 上一节整合了Mybatis3与Spring4,接下来整合SpringMVC! 说明:整合SpringMVC必须是在web项目中,所以前期,新建的就是web项目! 本节全部采用 ...

  9. SSM集成(一):Mybatis3测试

    Spring4+Mybatis3+SpringMVC(基于注解)整合步聚: 一)Mybatis3测试; 二)Mybatis3+Spring4整合; 三)Mybatis3+Spring4+SpringM ...

随机推荐

  1. 【Java】HashMap源码分析——基本概念

    在JDK1.8后,对HashMap源码进行了更改,引入了红黑树.在这之前,HashMap实际上就是就是数组+链表的结构,由于HashMap是一张哈希表,其会产生哈希冲突,为了解决哈希冲突,HashMa ...

  2. css3火焰文字样式代码

    css样式: <style type="text/css"> body{background:#000;} *{margin:0;padding:0;transitio ...

  3. 如今领占主导地位的19种AI技术!

    如今领占主导地位的19种AI技术! http://blog.itpub.net/31542119/viewspace-2212797/ 深度学习的突破将人工智能带进全新阶段. 2006 年-2015 ...

  4. 超级干货 :一文读懂数据可视化 ZT

    前言 数据可视化,是指将相对晦涩的的数据通过可视的.交互的方式进行展示,从而形象.直观地表达数据蕴含的信息和规律. 早期的数据可视化作为咨询机构.金融企业的专业工具,其应用领域较为单一,应用形态较为保 ...

  5. 网络基础 Windows控制台下Ftp使用简介

    Windows控制台下Ftp使用简介 by:授客 QQ:1033553122 测试环境: ftp服务器所在主机ip:172.25.75.2 ftp用户目录:F:\ftp   C:\Users\laif ...

  6. 程序员简单打造一个灵活智能的自动化运维系统C#实例程序

    你是一个程序员,被派去管理公司500台计算机.这些机器可能需要执行一些自动化任务,一台台手动操作会把你累死.重复性的工作还是交给电脑处理,怎么解决这个问题呢?一个自动化的运维系统是必须的.自己实现的好 ...

  7. PL/SQL 查询的数据出现乱码

    解决方法: 1.首先在查询出Oracle数据库的字符集. select userenv('language') from dual; 2.新建系统变量 NLS_LANG,变量值为第一步查询出来的字符集 ...

  8. 给你一个全自动的屏幕适配方案(基于SW方案)!—— 解放你和UI的双手

    Calces系列相关文章:Calces自动实现Android组件化模块构建 前言 屏幕适配一直是移动端开发热议的问题,但是适配方案往往在实际开发的时候会和UI提供的设计稿冲突.本文主要是基于官方推荐的 ...

  9. Flume组件汇总2

    Component Interface Type Alias Implementation Class org.apache.flume.Channel memory org.apache.flume ...

  10. springboot 升级到2.0后 context-path 配置 不起作用,不生效 不管用 皆是因为版本改动导致的在这里记录一下

    不知不觉,新的项目已经将springboot升级为2.0版本了.刚开始没有配置server.contextpath,默认的“/”,然后今天放到自己的服务器上,所以就要规范名称.  结果,失败了,无论我 ...