使用 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整合
下面主要介紹三大框架的整合,至於環境的搭建以及項目的創建,參看上面的博文。這次整合我分了 2 個配置文件 ,分別是 spring-mybatis.xml ,包含 spring 和 mybatis 的配置文件,還有個是 spring-mvc 的配置文件,此外有 2 個資源文件 : jdbc.propertis 和 log4j.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
<properties> <!-- spring版本號 --> <spring.version>4.0.2.RELEASE</spring.version> <!-- mybatis版本號 --> <mybatis.version>3.2.6</mybatis.version> <!-- log4j日志文件管理包版本 --> <slf4j.version>1.7.7</slf4j.version> <log4j.version>1.2.17</log4j.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <!-- 表示開發的時候引入,發布的時候不會加載此包 --> <scope>test</scope> </dependency> <!-- spring核心包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- mybatis/spring包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <!-- 導入java ee jar 包 --> <