1. 程式人生 > >java後端學習 myeclipse整合SSM框架

java後端學習 myeclipse整合SSM框架

        使用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


  
  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. <dependencies>
  11. <dependency>
  12. <groupId>junit </groupId>
  13. <artifactId>junit </artifactId>
  14. <version>4.11 </version>
  15. <!-- 表示開發的時候引入,釋出的時候不會載入此包 -->
  16. <scope>test </scope>
  17. </dependency>
  18. <!-- spring核心包 -->
  19. <dependency>
  20. <groupId>org.springframework </groupId>
  21. <artifactId>spring-core </artifactId>
  22. <version>${spring.version} </version>
  23. </dependency>
  24. <dependency>
  25. <groupId>org.springframework </groupId>
  26. <artifactId>spring-web </artifactId>
  27. <version>${spring.version} </version>
  28. </dependency>
  29. <dependency>
  30. <groupId>org.springframework </groupId>
  31. <artifactId>spring-oxm </artifactId>
  32. <version>${spring.version} </version>
  33. </dependency>
  34. <dependency>
  35. <groupId>org.springframework </groupId>
  36. <artifactId>spring-tx </artifactId>
  37. <version>${spring.version} </version>
  38. </dependency>
  39. <dependency>
  40. <groupId>org.springframework </groupId>
  41. <artifactId>spring-jdbc </artifactId>
  42. <version>${spring.version} </version>
  43. </dependency>
  44. <dependency>
  45. <groupId>org.springframework </groupId>
  46. <artifactId>spring-webmvc </artifactId>
  47. <version>${spring.version} </version>
  48. </dependency>
  49. <dependency>
  50. <groupId>org.springframework </groupId>
  51. <artifactId>spring-aop </artifactId>
  52. <version>${spring.version} </version>
  53. </dependency>
  54. <dependency>
  55. <groupId>org.springframework </groupId>
  56. <artifactId>spring-context-support </artifactId>
  57. <version>${spring.version} </version>
  58. </dependency>
  59. <dependency>
  60. <groupId>org.springframework </groupId>
  61. <artifactId>spring-test </artifactId>
  62. <version>${spring.version} </version>
  63. </dependency>
  64. <!-- mybatis核心包 -->
  65. <dependency>
  66. <groupId>org.mybatis </groupId>
  67. <artifactId>mybatis </artifactId>
  68. <version>${mybatis.version} </version>
  69. </dependency>
  70. <!-- mybatis/spring包 -->
  71. <dependency>
  72. <groupId>org.mybatis </groupId>
  73. <artifactId>mybatis-spring </artifactId>
  74. <version>1.2.2 </version>
  75. </dependency>
  76. <!-- 匯入java ee jar 包 -->
  77. <dependency>
  78. <groupId>javax </groupId>
  79. <artifactId>javaee-api </artifactId>
  80. <version>7.0 </version>
  81. </dependency>
  82. <!-- 匯入Mysql資料庫連結jar包 -->
  83. <dependency>
  84. <groupId>mysql </groupId>
  85. <artifactId>mysql-connector-java </artifactId>
  86. <version>5.1.30 </version>
  87. </dependency>
  88. <!-- 匯入dbcp的jar包,用來在applicationContext.xml中配置資料庫 -->
  89. <dependency>
  90. <groupId>commons-dbcp </groupId>
  91. <artifactId>commons-dbcp </artifactId>
  92. <version>1.2.2 </version>
  93. </dependency>
  94. <!-- JSTL標籤類 -->
  95. <dependency>
  96. <groupId>jstl </groupId>
  97. <artifactId>jstl </artifactId>
  98. <version>1.2 </version>
  99. </dependency>
  100. <!-- 日誌檔案管理包 -->
  101. <!-- log start -->
  102. <dependency>
  103. <groupId>log4j </groupId>
  104. <artifactId>log4j </artifactId>
  105. <version>${log4j.version} </version>
  106. </dependency>
  107. <!-- 格式化物件,方便輸出日誌 -->
  108. <dependency>
  109. <groupId>com.alibaba </groupId>
  110. <artifactId>fastjson </artifactId>
  111. <version>1.1.41 </version>
  112. </dependency>
  113. <dependency>
  114. <groupId>org.slf4j </groupId>
  115. <artifactId>slf4j-api </artifactId>
  116. <version>${slf4j.version} </version>
  117. </dependency>
  118. <dependency>
  119. <groupId>org.slf4j </groupId>
  120. <artifactId>slf4j-log4j12 </artifactId>
  121. <version>${slf4j.version} </version>
  122. </dependency>
  123. <!-- log end -->
  124. <!-- 映入JSON -->
  125. <dependency>
  126. <groupId>org.codehaus.jackson </groupId>
  127. <artifactId>jackson-mapper-asl </artifactId>
  128. <version>1.9.13 </version>
  129. </dependency>
  130. <!-- 上傳元件包 -->
  131. <dependency>
  132. <groupId>commons-fileupload </groupId>
  133. <artifactId>commons-fileupload </artifactId>
  134. <version>1.3.1 </version>
  135. </dependency>
  136. <dependency>
  137. <groupId>commons-io </groupId>
  138. <artifactId>commons-io </artifactId>
  139. <version>2.4 </version>
  140. </dependency>
  141. <dependency>
  142. <groupId>commons-codec </groupId>
  143. <artifactId>commons-codec </artifactId>
  144. <version>1.9 </version>
  145. </dependency>
  146. </dependencies>

4.2、Spring與MyBatis的整合

所有需要的JAR包都引入以後,首先進行SpringMyBatis的整合,然後再進行JUnit測試,先看一個專案結構圖:


4.2.1、建立JDBC屬性檔案

jdbc.properties(檔案編碼修改為utf-8


  
  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


  
  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.sprin