使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录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 Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain 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整合

下面主要介绍三大框架的整合,至于环境的搭建以及项目的创建,参看上面的博文。这次整合我分了

使用框架都是较新的版本:

Spring 4.0.2 RELEASE

Spring MVC 4.0.2 RELEASE

MyBatis 3.2.6

4.1、Maven引入需要的JAR包

为了方便后面说的时候不需要引入JAR包,我这里
pom.xml

  1. <properties>
  2. <spring.version></spring.version>
  3. <mybatis.version></mybatis.version>
  4. <slf4j.version></slf4j.version>
    <log4j.version></log4j.version>
    </properties>

    <dependencies>
    <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>

  5. <scope></scope>
    </dependency>
  6. <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>

    <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>
    <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>
    <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>

    <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>

    <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>
    <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>

    <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>

    <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>

  7. <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>
  8. <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>
  9. <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>
  10. <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>
  11. <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>
  12. <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>
  13. <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>
  14. <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>

    <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>

    <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>

  15. <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>
  16. <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>
    <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>
    <dependency>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    </dependency>

    </dependencies>

4.2、Spring与MyBatis的整合

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

4.2.1、建立JDBC属性文件

  1. drivercom
    urljdbc
    usernamedemao
    passworddemao

    initialSize0

    maxActive20

    maxIdle20

    minIdle1

    maxWait60000

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

这个文件就是用来完成spring和mybatis的整合的。这里面也没多少行配置,主要的就是

  1. <?xml= =?>
    <beans=
  2. = =
  3. =
  4. =
  5. ="http://www.springframework.org/schema/beans
  6. >
  7. <context:component-scan= />
  8. <bean=
  9. =>
    <property= = />
    </bean>

    <bean= =

  10. =>
    <property= = />
    <property= = />
    <property= = />
    <property= = />
  11. <property= =></property>
  12. <property= =></property>
  13. <property= =></property>
  14. <property= =></property>
  15. <property= =></property>
    </bean>
  16. <bean= =>
    <property= = />
  17. <property= =></property>
    </bean>
  18. <bean=>
    <property= = />
    <property= =></property>
    </bean>
  19. <bean=
  20. =>
    <property= = />
    </bean>

    </beans>

4.2.3、Log4j的配置

为了方便调试,一般都会使用日志来输出信息,Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。

Log4j的配置很简单,而且也是
http://blog.csdn.net/zhshulin/article/details/37937365

下面给出配置文件目录:

  1. log4j.rootLoggerINFO

    log4j.appender.Consoleorg
    log4j.appender.Console.TargetSystem

    log4j.appender.Console.layout.apache.log4j.PatternLayout

  2. log4j.appender.Console.layout.ConversionPattern

    log4j.appender.File.apache.log4j.RollingFileAppender

  3. log4j.appender.File.File/ssm.log
  4. log4j.appender.File.MaxFileSize
  5. log4j.appender.File.Threshold
  6. log4j.appender.File.layout.apache.log4j.PatternLayout
  7. log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

4.2.4、JUnit测试

经过以上步骤(到4.2.2,log4j不配也没影响),我们

4.2.4.1、创建测试用表

既然我们需要测试,那么我们就需要建立在数据库中建立一个测试表,这个表建的很简单,SQL语句为:

  1. DROPTABLE

    CREATETABLE
    int  AUTO_INCREMENT,

  2. varchar ,
  3. passwordvarchar ,
  4. int ,
  5. PRIMARYKEY
    DEFAULT

    fortable

    insertintopasswordvalues,,24);

4.2.4.2、利用MyBatis Generator自动创建代码

参考博文:http://blog.csdn.net/zhshulin/article/details/23912615

这个可根据表自动创建实体类、MyBatis映射文件以及DAO接口,当然,我习惯将生成的接口名改为IUserDao,而不是直接用它生成的UserMapper。如果不想麻烦就

4.2.4.3、建立Service接口和实现类

目录结构:

下面给出具体的内容:

  1. package

    import

    publicinterface
    publicint
    }

UserServiceImpl.java

  1. package

    import

    import

    import
    import
    import

    @Service"userService"
    publicclassimplements

  2. private
  3. publicint
  4. returnthis

    }

4.2.4.4、建立测试类

测试类
       如果测试成功,表示Spring和Mybatis已经整合成功了。输出信息使用的是Log4j打印到控制台。

  1. package

    import

    import
    import
    import
    import
    import
    import
    import
    import

    import
    import
    import

    @RunWithclass

  2. @ContextConfiguration})
  3. publicclass
    privatestaticclass
    //  private ApplicationContext ac = null;
  4. privatenull

    //  @Before
    //  public void before() {
    //      ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    //      userService = (IUserService) ac.getBean("userService");
    //  }

  5. publicvoid
    );
  6. }

测试结果:

至此,

4.3、整合SpringMVC

上面已经完成了2大框架的整合,SpringMVC的配置文件单独放,然后在web.xml中配置整合。

4.3.1、配置spring-mvc.xml

配置里面的注释也很详细,在此就不说了,主要是

  1. <?xml= =?>
    <beans=
  2. = =
  3. =
  4. =
  5. ="http://www.springframework.org/schema/beans
  6. >
  7. <context:component-scan= />
  8. <bean=
  9. =>
    <property=>
    <list>
    <value>=-8</value>
    </list>
    </property>
    </bean>
  10. <bean
    =>
    <property=>
    <list>
    <ref= />
  11. </list>
    </property>
    </bean>
  12. <bean=>
  13. <property= = />
    <property= = />
    </bean>
  14. <bean=
  15. =>
  16. <property= = />
  17. <property= = />
  18. <property= = />
    </bean>

    </beans>

4.3.2、配置web.xml文件

这里面对spring-mybatis.xml的引入以及配置的spring-mvc的Servlet就是为了完成SSM整合,之前2框架整合不需要在此处进行任何配置。配置一样有详细注释,不多解释了。

  1. <?xml= =?>
    <web-app=
  2. =
  3. =
    =>
    <display-name></display-name>
  4. <context-param>
    <param-name></param-name>
    <param-value></param-value>
    </context-param>
  5. <filter>
    <filter-name></filter-name>
    <filter-class></filter-class>
    <async-supported></async-supported>
    <init-param>
    <param-name></param-name>
    <param-value></param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name></filter-name>
    <url-pattern></url-pattern>
    </filter-mapping>
  6. <listener>
    <listener-class></listener-class>
    </listener>
  7. <listener>
    <listener-class></listener-class>
    </listener>
  8. <servlet>
    <servlet-name></servlet-name>
    <servlet-class></servlet-class>
    <init-param>
    <param-name></param-name>
    <param-value></param-value>
    </init-param>
    <load-on-startup></load-on-startup>
    <async-supported></async-supported>
    </servlet>
    <servlet-mapping>
    <servlet-name></servlet-name>
  9. <url-pattern></url-pattern>
    </servlet-mapping>
    <welcome-file-list>
    <welcome-file></welcome-file>
    </welcome-file-list>

    </web-app>

4.3.3、测试

至此已经完成了SSM三大框架的整合了,接下来测试一下,如果成功了,那么恭喜你,如果失败了,继续调试吧,

4.3.3.1、新建jsp页面

完整的简单流程。

  1. <= = =%>
    >
    <html>
    <head>
    <title></title>
    </head>

    <body>

    </body>
    </html>

4.3.3.2、建立UserController类

UserController.java  控制器

  1. package

    import
    import

    import
    import
    import

    import
    import

    @Controller
    @RequestMapping"/user"
    publicclass

  2. private

    ()

  3. public
    int));
  4. this
    , user);
  5. return;
  6. }

4.3.3.3、部署项目

输入地址:localhost:8080/项目名称/user/showUser?id=1

至此,SSM三大框架的整合就完成了,在此基础上可再添加其他功能。

源码下载地址:http://download.csdn.net/detail/u012909091/7658611

(转载注明出处:http://blog.csdn.net/zhshulin

SSM框架整合:转自:http://blog.csdn.net/zhshulin的更多相关文章

  1. 【转载】SSM框架整合

    http://blog.csdn.net/gebitan505/article/details/44455235/ 1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于20 ...

  2. SSM框架整合( Spring 、 SpringMVC 和 Mybatis )

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

  3. 转 SSM框架整合to萌新

    作用: SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层 使用spring ...

  4. SpringMVC札集(10)——SSM框架整合

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  5. ssm框架整合快速入门

    写在前面: 公司一直都是使用ssh框架(Struts2,Spring,Hibernate)来开发,但是现在外面的公司大多数都是使用的ssm框架,所以也有必要多学习一下外面的新技术.这里就快速搭建一个小 ...

  6. (转)淘淘商城系列——SSM框架整合之Dao层整合

    http://blog.csdn.net/yerenyuan_pku/article/details/72721093 一个项目中往往有三层即Dao层.Service层和Web层,看标题就知道了,本文 ...

  7. SSM框架整合项目 :租房管理系统

    使用ssm框架整合,oracle数据库 框架: Spring SpringMVC MyBatis 导包: 1, spring 2, MyBatis 3, mybatis-spring 4, fastj ...

  8. 基于maven的ssm框架整合

    基于maven的ssm框架整合 第一步:通过maven建立一个web项目.                第二步:pom文件导入jar包                              (1 ...

  9. JavaWeb之ssm框架整合,用户角色权限管理

    SSM框架整合 Spring SpringMVC MyBatis 导包: 1, spring 2, MyBatis 3, mybatis-spring 4, fastjson 5, aspectwea ...

随机推荐

  1. QQ号_保存_20180124

    1.1337978907 (密码:33+我的名字全小写全部拼音) 2. 3. 4. 5.

  2. 异地clone RAC数据库 +ASM USE RMAN

    ###sample 如何在本地生成数据库的备份,并复制到DG库新环境(高级) 1. 首先确定本地文件系统(存放备份集)足够大,可以使用如下语句查询当前数据库实际的使用总大小 Rman 备份进度: se ...

  3. 转 Comparison of Red Hat and Oracle Linux kernel versions and release strings

    Originally derived from Red Hat Enterprise Linux (RHEL), Oracle Linux (OL) contains minor difference ...

  4. linux-centos-pgsql-Ident authentication failed for user “postgres”错误出现解决方法

    首先,要找到pg_hba.conf\ -->cd /var/lib/pgsql/data -->vi pg_hba.conf 然后,将里面的配置文件修改如下: # TYPE DATABAS ...

  5. idea进行断点快捷键

    快捷键 功能描述 F8 单步调试,不进入函数内部 F7 单步调试,进入函数内部 Shift+F7 选择要进入的函数 Shift+F8 跳出函数 Alt+F9 运行到断点 Alt+F8 执行表达式查看结 ...

  6. 数据库版本管理工具flyway

    引入flyway_core  jar包 java 代码实现 public class FlywayMigration { @Resource private DataSource dataSource ...

  7. Idea创建Maven项目没有src

    第一次创建,下载非常慢,解决方法 1.配置环境变量 第二种:创建Maven项目时加上 archetypeCatalog=internal 参数 第三种:为自己的Maven配置国内镜像源 打开自己的 M ...

  8. [引]雅虎日历控件 Example: Two-Pane Calendar with Custom Rendering and Multiple Selection

    本文转自:http://yuilibrary.com/yui/docs/calendar/calendar-multipane.html This example demonstrates how t ...

  9. Huawei English Corner

     Keywords  Descriptions  FWIW  For what it's worth(不管结果怎样)  ASAP  As Soon As Possible(尽快)  FYI  For ...

  10. jq回到顶部效果分析

    在浏览网页时,超出屏幕高度就会出现提上点击回到顶部的图标,点击即可回到页面顶部. 用到的知识点如下: 1.首先控制图标的显示和隐藏,先要获取浏览器的高度. var wHeight = $(window ...