Spring4.2+SpringMVC+Mybatis3.4的集成(转-)
首先初始化Spring的bean工厂,通过加载beans.xml初始化,其次通过spring的listener来监听,再次当请求时拦截并编码为UTF-8,最后由DispatcherServlet处理并分发到controller上
此项目主要目的是在于集成,主要包括一下步骤:
|
1. Jar包的加入,包括:spring、MyBatis、log、spring-mybatis、oracle。具体的jar包如下图所示,并简要的说明每个jar的作用。
2. 需要在Web.xml文件中配置每个框架的入口。如下所示:
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- id="WebApp_ID" version="2.5">
- <display-name>ssm</display-name>
- <!-- 初始化spring的配置文件 -->
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath*:conf/beans.xml</param-value>
- </context-param>
- <listener>
- <description>spring监听器</description>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <!-- 配置springmvc的入口 -->
- <servlet>
- <servlet-name>action</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath*:conf/spring-mvc.xml</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>action</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
- <!—springMVC配置结束 -->
- <!-- 拦截器,对每个请求处理字符编码为UTF-8 -->
- <filter>
- <filter-name>encodingFilter</filter-name>
- <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>encodingFilter</filter-name>
- <url-pattern>/</url-pattern>
- </filter-mapping>
- <!-- 拦截器结束-->
- </web-app>
首先说明一下Web.xml中配置项的执行过程: <context-param> <listenser> <filter> <servlet>
首先初始化Spring的bean工厂,通过加载beans.xml初始化,其次通过spring的listener来监听,再次当请求时拦截并编码为UTF-8,最后由DispatcherServlet处理并分发到controller上
3. springMVC的配置文件
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xmlns:p="http://www.springframework.org/schema/p"
- xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc.xsd">
- <!-- 开启注解扫描 -->
- <mvc:annotation-driven/>
- <!-- annotation默认的方法映射适配器 ,下面两个就是 <mvc:annotation-driven/>-->
- <!-- <bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
- <bean id="handlerAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> -->
- <!-- 指定扫描包 -->
- <context:component-scan base-package="com.sm.controller" />
- <!-- 配置视图处理 -->
- <bean id="viewResolver"
- class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="/WEB-INF/view/" />
- <property name="suffix" value=".jsp" />
- </bean>
- <!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 -->
- <bean id="multipartResolver"
- class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
- <property name="defaultEncoding" value="utf-8" />
- <property name="maxUploadSize" value="10485760000" />
- <property name="maxInMemorySize" value="40960" />
- </bean>
- </beans>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
- xmlns:util="http://www.springframework.org/schema/util" xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd
- http://www.springframework.org/schema/util
- http://www.springframework.org/schema/util/spring-util.xsd">
- <context:annotation-config />
- <!-- 扫描service,dao -->
- <context:component-scan base-package="com.sm">
- <context:exclude-filter type="regex"
- expression="com.sm.controller" />
- </context:component-scan>
- <!-- ////////////////////////配置数据源///////////////////////// -->
- <!-- 把.properties文件引入xml文件中 -->
- <!-- 第一种方式,比较方便 -->
- <!-- <util:properties location="classpath*:conf/jdbc.properties" /> -->
- <!-- 第二中方式 -->
- <!-- <context:property-placeholder location="classpath*:conf/jdbc.properties"/> -->
- <!-- 第三种方式 ,稍复杂点 -->
- <bean id="propertyConfigurer"
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="locations" value="classpath*:conf/jdbc.properties" />
- <!-- <property name="locations"> <list> <value>classpath*:conf/jdbc.properties</value>
- </list> </property> -->
- </bean>
- <!-- 将Mybatis的DataSource,sessionFactory以及Transaction受控于Spring容器 -->
- <!-- 数据源有多种:1,dbcp class="" 2,c3p0, class="" 3,alibaba的Druid(德鲁伊)数据源 class="com.alibaba.druid.pool.DruidDataSource"
- 4,spring class="org.springframework.jdbc.datasource.DriverManagerDataSource" -->
- <bean id="dataSource"
- class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <property name="driverClassName" value="${jdbc.driverClassName}" />
- <property name="url" value="${jdbc.url}" />
- <property name="username" value="${jdbc.username}" />
- <property name="password" value="${jdbc.password}" />
- <!-- 初始化连接大小 -->
- <property name="initialSize" value="0" />
- <!-- 连接池最大使用连接数量 -->
- <property name="maxActive" value="20" />
- <!-- 连接池最大空闲 -->
- <property name="maxIdle" value="20" />
- <!-- 连接池最小空闲 -->
- <property name="minIdle" value="0" />
- <!-- 获取连接最大等待时间 -->
- <property name="maxWait" value="60000" />
- <property name="validationQuery" value="${validationQuery}" />
- <property name="testOnBorrow" value="false" />
- <property name="testOnReturn" value="false" />
- <property name="testWhileIdle" value="true" />
- <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
- <property name="timeBetweenEvictionRunsMillis" value="60000" />
- <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
- <property name="minEvictableIdleTimeMillis" value="25200000" />
- <!-- 打开removeAbandoned功能 -->
- <property name="removeAbandoned" value="true" />
- <!-- 1800秒,也就是30分钟 -->
- <property name="removeAbandonedTimeout" value="1800" />
- <!-- 关闭abanded连接时输出错误日志 -->
- <property name="logAbandoned" value="true" />
- <!-- 监控数据库 -->
- <property name="filters" value="mergeStat" />
- </bean>
- <!-- ////////////配置Mybatis/////////////////////////////////// -->
- <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <!-- <property name="configLocation" value="classpath*:conf/sqlMapConfig.xml"
- /> -->
- <property name="mapperLocations">
- <list>
- <value>classpath*:conf/com/dao/mapper/*.map.xml</value>
- </list>
- </property>
- </bean>
- <!-- 配置扫描接口 -->
- <!-- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> value指明接口所在的包中
- <property name="basePackage" value="com.sm.dao" /> <property name="sessionFactory"
- ref="sessionFactory" /> </bean> -->
- </beans>
jdbc.driverClassName=oracle.jdbc.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.username=scott
jdbc.password=tiger
validationQuery=SELECT 1
- package com.sm.controller;
- import javax.annotation.Resource;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import com.sm.model.User;
- import com.sm.service.UserService;
- @Controller
- @RequestMapping("/user")
- public class UserController {
- private UserService userService;
- @Resource
- public void setUserService(UserService userService) {
- this.userService = userService;
- }
- @RequestMapping("/add")
- public String addUser(User user){
- userService.addUser(user);
- return "success";
- }
- @RequestMapping("/toAddUser")
- public String toAddUser(){
- return "userAdd";
- }
- }
- package com.sm.service;
- import javax.annotation.Resource;
- import org.springframework.stereotype.Service;
- import com.sm.dao.UserDao;
- import com.sm.model.User;
- @Service
- public class UserService {
- @Resource
- private UserDao userDao ;
- public void addUser(User user){
- userDao.add(user);
- }
- }
- package com.sm.dao;
- import javax.annotation.Resource;
- import org.apache.ibatis.session.SqlSession;
- import org.apache.ibatis.session.SqlSessionFactory;
- import org.springframework.stereotype.Repository;
- import com.sm.model.User;
- @Repository
- public class UserDao {
- @Resource
- private SqlSessionFactory sessionFactory ;
- public void add(User user){
- System.out.println("添加user"+user.getId()+"成功");
- SqlSession session = sessionFactory.openSession();
- session.insert("add", user);
- }
- }
最重要的环境的配置
Spring4.2+SpringMVC+Mybatis3.4的集成(转-)的更多相关文章
- Spring集成Mybatis,spring4.x整合Mybatis3.x
Spring集成Mybatis,spring4.x整合Mybatis3.x ============================== 蕃薯耀 2018年3月14日 http://www.cnblo ...
- spring4.1.3+springmvc+mybatis3.2.1整合
注意:这里使用了mybatis3.2.1版本,刚开始用了3.4.1的版本,会报一个很奇怪的错(java.lang.AbstractMethodError: org.mybatis.spring.tra ...
- 在spring+springMvc+mabatis框架下集成swagger
我是在ssm框架下集成swagger的,具体的ssm搭建可以看这篇博文: Intellij Idea下搭建基于Spring+SpringMvc+MyBatis的WebApi接口架构 本项目的GitHu ...
- Spring+SpringMVC+Mybatis(SSM)框架集成搭建
Spring+SpringMVC+Mybatis框架集成搭建教程 一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以 ...
- springMVC和spring的集成
主要是2点 1.web.xml里 配置spring所需的listener 2. 新增applicationContext.xml, 配置注入的bean 3. 使用注解获取bean @Resource ...
- SpringMVC+Spring+Mybatis框架集成
一.基本概念 1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-O ...
- 第六次课:springMVC与spring的集成
spring在项目中起到了管理bean的作用,即可以通过配置,让系统自动创建所需的对象,通过一定的方式引用系统创建的对象,对象的创建和引用都是由spring自动完成的,用户不必参与,可以直接引用. 实 ...
- SSM整合(三):Spring4与Mybatis3与SpringMVC整合
源码下载 SSMDemo 上一节整合了Mybatis3与Spring4,接下来整合SpringMVC! 说明:整合SpringMVC必须是在web项目中,所以前期,新建的就是web项目! 本节全部采用 ...
- SSM集成(一):Mybatis3测试
Spring4+Mybatis3+SpringMVC(基于注解)整合步聚: 一)Mybatis3测试; 二)Mybatis3+Spring4整合; 三)Mybatis3+Spring4+SpringM ...
随机推荐
- Java框架之Spring(一)
在学习Spring之前,需要回忆一下工厂模式.下面会演示一段代码,自己体会.之所以要工厂模式是因为他有一个好处,很像Spring的用法.在实际开发中,new对象对于一个开发人员来说是一件非常需要小心谨 ...
- SSM+solr 通过商品搜索学习solr的简单使用
学习了一下https://github.com/TyCoding/ssm-redis-solr这个github上的solr搜索功能,现在来记录一下. 我的理解就是solr有点类似于数据库,但它是有索引 ...
- SQL Server 基本SELECT语句
1.SELECT 和 FROM 语句 SELECT表示执行的是查询,接着需要更知道从哪边查询数据,FROM就是限制读取的数据在哪一个表或哪几个表中,这样就构成了一个基本语句. SELECT * FRO ...
- callback.js
function writeCode(callback){ console.log("i am waiting....") callback(); console.log(&quo ...
- GIS性能策略
当一个地理平台上线运行,我们经常会遇到这些问题:1.系统刚上线时速度较快,一段时间后访问较慢?2.在地理平台目前的配置下,发布多少个服务才合理?一个服务配置多少个实例数才合适?这些问题,都涉及整个地理 ...
- “一切都是消息”--iMSF(即时消息服务框架)之【发布-订阅】模式
MSF的名字是 Message Service Framework 的简称,由于目前框架主要功能在于处理即时(immediately)消息,所以iMSF就是 immediately Message S ...
- 华为交换机MSTP+VRRP配置实例说明文档
华为交换机MSTP+VRRP配置实例说明文档 拓扑图 IP地址规划表 设备名称 设备接口 对端设备 对端接口 VLAN VLAN /接口地址 备注 SW0 GE0/0/23 SW2 GE0/0/23 ...
- Android 将数据写入Execl格式导出U盘、发送邮件
创建Execl.写入Execl数据.导入U盘 public WriteExcel(Context mContext){ this.mContext = mContext; } // 创建excel表 ...
- Spring boot 入门篇
详见:https://www.cnblogs.com/ityouknow/p/5662753.html 什么是Spring Boot Spring Boot 是由 Pivotal 团队提供的全新框架, ...
- MyBatis学习——分步查询与延迟加载
声明:面试是遇到延迟加载问题,在网页搜索到此篇文章,感觉很有帮助,留此学习之用! 一.分步查询 分步查询通常应用于关联表查询,如:电商平台,查询订单信息时需要查询部分的用户信息:OA系统查询个人信息时 ...