SSM框架-详细整合

转发自:https://blog.csdn.net/gebitan505/article/details/44455235

使用SSMSpringSpringMVCMybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下。这次先说说三大框架整合过程。个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助。不过,如果用都不会,谈思想就变成纸上谈兵了!!!先技术,再思想。实践出真知。(可通过图片水印查看博客地址)


1、基本概念


1.1、Spring


        Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面AOP)的容器框架。


1.2、SpringMVC

     

        Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。


1.3、MyBatis


       MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis MyBatis是一个基于Java持久层框架。iBATIS提供的持久层框架包括SQL MapsData Access ObjectsDAOMyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java POJOsPlain Old Java Objects,普通的 Java对象)映射成数据库中的记录。



2、开发环境搭建



如果需要,参看之前的博文:http://blog.csdn.net/zhshulin/article/details/30779873



3、Maven Web项目创建


如果需要,参看之前的博文:http://blog.csdn.net/zhshulin/article/details/37921705



4、SSM整合

      

        下面主要介绍三大框架的整合,至于环境的搭建以及项目的创建,参看上面的博文。这次整合我分了2个配置文件,分别是spring-mybatis.xml,包含springmybatis的配置文件,还有个是spring-mvc的配置文件,此外有2个资源文件jdbc.propertislog4j.properties。完整目录结构如下(最后附上源码下载地址,不建议直接使用源码,因为此教程已经有了全部代码):


使用框架都是较新的版本

       Spring 4.0.2 RELEASE

       Spring MVC 4.0.2 RELEASE

       MyBatis 3.2.6


4.1、Maven引入需要的JAR包

         为了方便后面说的时候不需要引入JAR包,我这里直接给出所有需要的JAR包,这都是基本的JAR包,每个包的是干什么的都有注释,就不再多说了。

pom.xml

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. <properties>  
  2.         <!-- spring版本号 -->  
  3.         <spring.version>4.0.2.RELEASE</spring.version>  
  4.         <!-- mybatis版本号 -->  
  5.         <mybatis.version>3.2.6</mybatis.version>  
  6.         <!-- log4j日志文件管理包版本 -->  
  7.         <slf4j.version>1.7.7</slf4j.version>  
  8.         <log4j.version>1.2.17</log4j.version>  
  9.     </properties>  
  10.   
  11.     <dependencies>  
  12.         <dependency>  
  13.             <groupId>junit</groupId>  
  14.             <artifactId>junit</artifactId>  
  15.             <version>4.11</version>  
  16.             <!-- 表示开发的时候引入,发布的时候不会加载此包 -->  
  17.             <scope>test</scope>  
  18.         </dependency>  
  19.         <!-- spring核心包 -->  
  20.         <dependency>  
  21.             <groupId>org.springframework</groupId>  
  22.             <artifactId>spring-core</artifactId>  
  23.             <version>${spring.version}</version>  
  24.         </dependency>  
  25.   
  26.         <dependency>  
  27.             <groupId>org.springframework</groupId>  
  28.             <artifactId>spring-web</artifactId>  
  29.             <version>${spring.version}</version>  
  30.         </dependency>  
  31.         <dependency>  
  32.             <groupId>org.springframework</groupId>  
  33.             <artifactId>spring-oxm</artifactId>  
  34.             <version>${spring.version}</version>  
  35.         </dependency>  
  36.         <dependency>  
  37.             <groupId>org.springframework</groupId>  
  38.             <artifactId>spring-tx</artifactId>  
  39.             <version>${spring.version}</version>  
  40.         </dependency>  
  41.   
  42.         <dependency>  
  43.             <groupId>org.springframework</groupId>  
  44.             <artifactId>spring-jdbc</artifactId>  
  45.             <version>${spring.version}</version>  
  46.         </dependency>  
  47.   
  48.         <dependency>  
  49.             <groupId>org.springframework</groupId>  
  50.             <artifactId>spring-webmvc</artifactId>  
  51.             <version>${spring.version}</version>  
  52.         </dependency>  
  53.         <dependency>  
  54.             <groupId>org.springframework</groupId>  
  55.             <artifactId>spring-aop</artifactId>  
  56.             <version>${spring.version}</version>  
  57.         </dependency>  
  58.   
  59.         <dependency>  
  60.             <groupId>org.springframework</groupId>  
  61.             <artifactId>spring-context-support</artifactId>  
  62.             <version>${spring.version}</version>  
  63.         </dependency>  
  64.   
  65.         <dependency>  
  66.             <groupId>org.springframework</groupId>  
  67.             <artifactId>spring-test</artifactId>  
  68.             <version>${spring.version}</version>  
  69.         </dependency>  
  70.         <!-- mybatis核心包 -->  
  71.         <dependency>  
  72.             <groupId>org.mybatis</groupId>  
  73.             <artifactId>mybatis</artifactId>  
  74.             <version>${mybatis.version}</version>  
  75.         </dependency>  
  76.         <!-- mybatis/spring包 -->  
  77.         <dependency>  
  78.             <groupId>org.mybatis</groupId>  
  79.             <artifactId>mybatis-spring</artifactId>  
  80.             <version>1.2.2</version>  
  81.         </dependency>  
  82.         <!-- 导入java ee jar 包 -->  
  83.         <dependency>  
  84.             <groupId>javax</groupId>  
  85.             <artifactId>javaee-api</artifactId>  
  86.             <version>7.0</version>  
  87.         </dependency>  
  88.         <!-- 导入Mysql数据库链接jar包 -->  
  89.         <dependency>  
  90.             <groupId>mysql</groupId>  
  91.             <artifactId>mysql-connector-java</artifactId>  
  92.             <version>5.1.30</version>  
  93.         </dependency>  
  94.         <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->  
  95.         <dependency>  
  96.             <groupId>commons-dbcp</groupId>  
  97.             <artifactId>commons-dbcp</artifactId>  
  98.             <version>1.2.2</version>  
  99.         </dependency>  
  100.         <!-- JSTL标签类 -->  
  101.         <dependency>  
  102.             <groupId>jstl</groupId>  
  103.             <artifactId>jstl</artifactId>  
  104.             <version>1.2</version>  
  105.         </dependency>  
  106.         <!-- 日志文件管理包 -->  
  107.         <!-- log start -->  
  108.         <dependency>  
  109.             <groupId>log4j</groupId>  
  110.             <artifactId>log4j</artifactId>  
  111.             <version>${log4j.version}</version>  
  112.         </dependency>  
  113.           
  114.           
  115.         <!-- 格式化对象,方便输出日志 -->  
  116.         <dependency>  
  117.             <groupId>com.alibaba</groupId>  
  118.             <artifactId>fastjson</artifactId>  
  119.             <version>1.1.41</version>  
  120.         </dependency>  
  121.   
  122.   
  123.         <dependency>  
  124.             <groupId>org.slf4j</groupId>  
  125.             <artifactId>slf4j-api</artifactId>  
  126.             <version>${slf4j.version}</version>  
  127.         </dependency>  
  128.   
  129.         <dependency>  
  130.             <groupId>org.slf4j</groupId>  
  131.             <artifactId>slf4j-log4j12</artifactId>  
  132.             <version>${slf4j.version}</version>  
  133.         </dependency>  
  134.         <!-- log end -->  
  135.         <!-- 映入JSON -->  
  136.         <dependency>  
  137.             <groupId>org.codehaus.jackson</groupId>  
  138.             <artifactId>jackson-mapper-asl</artifactId>  
  139.             <version>1.9.13</version>  
  140.         </dependency>  
  141.         <!-- 上传组件包 -->  
  142.         <dependency>  
  143.             <groupId>commons-fileupload</groupId>  
  144.             <artifactId>commons-fileupload</artifactId>  
  145.             <version>1.3.1</version>  
  146.         </dependency>  
  147.         <dependency>  
  148.             <groupId>commons-io</groupId>  
  149.             <artifactId>commons-io</artifactId>  
  150.             <version>2.4</version>  
  151.         </dependency>  
  152.         <dependency>  
  153.             <groupId>commons-codec</groupId>  
  154.             <artifactId>commons-codec</artifactId>  
  155.             <version>1.9</version>  
  156.         </dependency>  
  157.           
  158.           
  159.     </dependencies>  

4.2、Spring与MyBatis的整合

所有需要的JAR包都引入以后,首先进行SpringMyBatis的整合,然后再进行JUnit测试,先看一个项目结构图:


4.2.1、建立JDBC属性文件

jdbc.properties(文件编码修改为utf-8

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. driver=com.mysql.jdbc.Driver  
  2. url=jdbc:mysql://10.221.10.111:8080/db_zsl  
  3. username=demao  
  4. password=demao  
  5. #定义初始连接数  
  6. initialSize=0  
  7. #定义最大连接数  
  8. maxActive=20  
  9. #定义最大空闲  
  10. maxIdle=20  
  11. #定义最小空闲  
  12. minIdle=1  
  13. #定义最长等待时间  
  14. maxWait=60000  

4.2.2、建立spring-mybatis.xml配置文件

        这个文件就是用来完成spring和mybatis的整合的。这里面也没多少行配置,主要的就是自动扫描,自动注入,配置数据库。注释也很详细,大家看看就明白了。

spring-mybatis.xml

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  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" xmlns:p="http://www.springframework.org/schema/p"  
  4.     xmlns:context="http://www.springframework.org/schema/context"  
  5.     xmlns:mvc="http://www.springframework.org/schema/mvc"  
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans    
  7.                         http://www.springframework.org/schema/beans/spring-beans-3.1.xsd    
  8.                         http://www.springframework.org/schema/context    
  9.                         http://www.springframework.org/schema/context/spring-context-3.1.xsd    
  10.                         http://www.springframework.org/schema/mvc    
  11.                         http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">  
  12.     <!-- 自动扫描 -->  
  13.     <context:component-scan base-package="com.cn.hnust" />  
  14.     <!-- 引入配置文件 -->  
  15.     <bean id="propertyConfigurer"  
  16.         class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
  17.         <property name="location" value="classpath:jdbc.properties" />  
  18.     </bean>  
  19.   
  20.     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  
  21.         destroy-method="close">  
  22.         <property name="driverClassName" value="${driver}" />  
  23.         <property name="url" value="${url}" />  
  24.         <property name="username" value="${username}" />  
  25.         <property name="password" value="${password}" />  
  26.         <!-- 初始化连接大小 -->  
  27.         <property name="initialSize" value="${initialSize}"></property>  
  28.         <!-- 连接池最大数量 -->  
  29.         <property name="maxActive" value=

猜你喜欢

转载自blog.csdn.net/gwz_6903/article/details/86756397