




已閱讀5頁,還剩42頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
SSM三大框架整合詳細教程(Spring+SpringMVC+MyBatis)使用SSM(Spring、SpringMVC和Mybatis)已經有三個多月了,項目在技術上已經沒有什么難點了,基于現有的技術就可以實現想要的功能,當然肯定有很多可以改進的地方。之前沒有記錄SSM整合的過程,這次剛剛好基于自己的一個小項目重新搭建了一次,而且比項目搭建的要更好一些。以前解決問題的過程和方法并沒有及時記錄,以后在自己的小項目中遇到我再整理分享一下。這次,先說說三大框架整合過程。個人認為使用框架并不是很難,關鍵要理解其思想,這對于我們提高編程水平很有幫助。不過,如果用都不會,談思想就變成紙上談兵了!先技術,再思想。實踐出真知。(可通過圖片水印查看博客地址)1、基本概念1.1、Spring Spring是一個開源框架,Spring是于2003年興起的一個輕量級的Java開發框架,由RodJohnson在其著作ExpertOne-On-OneJ2EEDevelopmentandDesign中闡述的部分理念和原型衍生而來。它是為了解決企業應用開發的復雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。 簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。1.2、SpringMVC SpringMVC屬于SpringFrameWork的后續產品,已經融合在SpringWebFlow里面。SpringMVC分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易進行定制。1.3、MyBatis MyBatis本是apache的一個開源項目iBatis,2010年這個項目由apachesoftwarefoundation遷移到了googlecode,并且改名為MyBatis。MyBatis是一個基于Java的持久層框架。iBATIS提供的持久層框架包括SQLMaps和DataAccessObjects(DAO)MyBatis消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis使用簡單的XML或注解用于配置和原始映射,將接口和Java的POJOs(PlainOldJavaObjects,普通的Java對象)映射成數據庫中的記錄。2、開發環境搭建如果需要,參看之前的博文:/zhshulin/article/details/307798733、Maven Web項目創建如果需要,參看之前的博文:/zhshulin/article/details/379217054、SSM整合 下面主要介紹三大框架的整合,至于環境的搭建以及項目的創建,參看上面的博文。這次整合我分了2個配置文件,分別是spring-mybatis.xml,包含spring和mybatis的配置文件,還有個是spring-mvc的配置文件,此外有2個資源文件:pertis和perties。完整目錄結構如下:使用框架都是較新的版本: Spring4.0.2RELEASE SpringMVC4.0.2RELEASE MyBatis、Maven引入需要的JAR包 為了方便后面說的時候不需要引入JAR包,我這里直接給出所有需要的JAR包,這都是基本的JAR包,每個包的是干什么的都有注釋,就不再多說了。pom.xml4.0.2.RELEASE.71.2.17junitjunit4.11testorg.springframeworkspring-core$spring.versionorg.springframeworkspring-web$spring.versionorg.springframeworkspring-oxm$spring.versionorg.springframeworkspring-tx$spring.versionorg.springframeworkspring-jdbc$spring.versionorg.springframeworkspring-webmvc$spring.versionorg.springframeworkspring-aop$spring.versionorg.springframeworkspring-context-support$spring.versionorg.springframeworkspring-test$spring.versionorg.mybatismybatis$mybatis.versionorg.mybatismybatis-spring1.2.2javaxjavaee-api7.0mysqlmysql-connector-java5.1.30commons-dbcpcommons-dbcp1.2.2jstljstl1.2log4jlog4j$log4j.versioncom.alibabafastjson1.1.41org.slf4jslf4j-api$slf4j.versionorg.slf4jslf4j-log4j12$slf4j.versionorg.codehaus.jacksonjackson-mapper-asl1.9.13commons-fileuploadcommons-fileupload1.3.1commons-iocommons-io2.4commons-codeccommons-codec1.92.2、Spring與MyBatis的整合所有需要的JAR包都引入以后,首先進行Spring與MyBatis的整合,然后再進行JUnit測試,先看一個項目結構圖:2.2.1、建立JDBC屬性文件perties(文件編碼修改為utf-8)driver=com.mysql.jdbc.Driverurl=jdbc:mysql:/11:8080/db_zslusername=demaopassword=demao#定義初始連接數initialSize=0#定義最大連接數maxActive=20#定義最大空閑maxIdle=20#定義最小空閑minIdle=1#定義最長等待時間maxWait=600002.2.2、建立spring-mybatis.xml配置文件 這個文件就是用來完成spring和mybatis的整合的。這里面也沒多少行配置,主要的就是自動掃描,自動注入,配置數據庫。注釋也很詳細,大家看看就明白了。spring-mybatis.xml2.2.3、Log4j的配置 為了方便調試,一般都會使用日志來輸出信息,Log4j是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件,甚至是套接口服務器、NT的事件記錄器、UNIXSyslog守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。 Log4j的配置很簡單,而且也是通用的,下面給出一個基本的配置,換到其他項目中也無需做多大的調整,如果想做調整或者想了解Log4j的各種配置,參看我轉載的一篇博文,很詳細:/zhshulin/article/details/37937365下面給出配置文件目錄:perties#定義LOG輸出級別log4j.rootLogger=INFO,Console,File#定義日志輸出目的地為控制臺log4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.Target=System.out#可以靈活地指定日志輸出格式,下面一行是指定具體的格式log4j.appender.Console.layout = org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=%c - %m%n#文件大小到達指定尺寸的時候產生一個新的文件log4j.appender.File = org.apache.log4j.RollingFileAppender#指定輸出目錄log4j.appender.File.File = logs/ssm.log#定義文件最大大小log4j.appender.File.MaxFileSize = 10MB# 輸出所以日志,如果換成DEBUG表示輸出DEBUG以上級別日志log4j.appender.File.Threshold = ALLlog4j.appender.File.layout = org.apache.log4j.PatternLayoutlog4j.appender.File.layout.ConversionPattern =%p %dyyyy-MM-dd HH:mm:ss%c%m%n2.2.4、JUnit測試 經過以上步驟(到4.2.2,log4j不配也沒影響),我們已經完成了Spring和mybatis的整合,這樣我們就可以編寫一段測試代碼來試試是否成功了。、創建測試用表既然我們需要測試,那么我們就需要建立在數據庫中建立一個測試表,這個表建的很簡單,SQL語句為:DROP TABLE IF EXISTS user_t;CREATE TABLE user_t ( id int(11) NOT NULL AUTO_INCREMENT, user_name varchar(40) NOT NULL, password varchar(255) NOT NULL, age int(4) NOT NULL, PRIMARY KEY (id) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;/*Data for the table user_t */insert into user_t(id,user_name,password,age) values (1,測試,sfasgfaf,24);、利用MyBatis Generator自動創建代碼參考博文:/zhshulin/article/details/23912615 這個可根據表自動創建實體類、MyBatis映射文件以及DAO接口,當然,我習慣將生成的接口名改為IUserDao,而不是直接用它生成的UserMapper。如果不想麻煩就可以不改。完成后將文件復制到工程中。如圖:、建立Service接口和實現類目錄結構:下面給出具體的內容:IUserService.javepackage .hnust.service;import .hnust.pojo.User;public interface IUserService public User getUserById(int userId);UserServiceImpl.javapackage .hnust.service.impl;import javax.annotation.Resource;import org.springframework.stereotype.Service;import .hnust.dao.IUserDao;import .hnust.pojo.User;import .hnust.service.IUserService;Service(userService)public class UserServiceImpl implements IUserService Resourceprivate IUserDao userDao;Overridepublic User getUserById(int userId) / TODO Auto-generated method stubreturn this.userDao.selectByPrimaryKey(userId);、建立測試類 測試類在src/test/java中建立,下面測試類中注釋掉的部分是不使用Spring時,一般情況下的一種測試方法;如果使用了Spring那么就可以使用注解的方式來引入配置文件和類,然后再將service接口對象注入,就可以進行測試了。 如果測試成功,表示Spring和Mybatis已經整合成功了。輸出信息使用的是Log4j打印到控制臺。package org.zsl.testmybatis;import javax.annotation.Resource;import org.apache.log4j.Logger;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.alibaba.fastjson.JSON;import .hnust.pojo.User;import .hnust.service.IUserService;RunWith(SpringJUnit4ClassRunner.class)/表示繼承了SpringJUnit4ClassRunner類ContextConfiguration(locations = classpath:spring-mybatis.xml)public class TestMyBatis private static Logger logger = Logger.getLogger(TestMyBatis.class);/private ApplicationContext ac = null;Resourceprivate IUserService userService = null;/Before/public void before() /ac = new ClassPathXmlApplicationContext(applicationContext.xml);/userService = (IUserService) ac.getBean(userService);/Testpublic void test1() User user = userService.getUserById(1);/ System.out.println(user.getUserName();/ (值:+user.getUserName();(JSON.toJSONString(user);測試結果:至此,完成Spring和mybatis這兩大框架的整合,下面在繼續進行SpringMVC的整合。2.3、整合SpringMVC 上面已經完成了2大框架的整合,SpringMVC的配置文件單獨放,然后在web.xml中配置整合。2.3.1、配置spring-mvc.xml配置里面的注釋也很詳細,在此就不說了,主要是自動掃描控制器,視圖模式,注解的啟動這三個。text/html;charset=UTF-8 2.3.2、配置web.xml文件 這里面對spring-mybatis.xml的引入以及配置的spring-mvc的Servlet就是為了完成SSM整合,之前2框架整合不需要在此處進行任何配置。配置一樣有詳細注釋,不多解釋了。web.xmlArchetype Created Web ApplicationcontextConfigLocationclasspath:spring-mybatis.xmlencodingFilterorg.springframework.web.filter.CharacterEncodingFiltertrueencodingUTF-8encodingFilter/*org.springframework.web.context.ContextLoaderListenerorg.springframework.web.util.IntrospectorCleanupListenerSpringMVCorg.springframework.web.servlet.DispatcherServletcontextConfigLocationclasspath:spring-mvc.xml1trueSpringMVC/index.jsp2.3.3、測試 至此已經完成了SSM三大框架的整合了,接下來測試一下,如果成功了,那么恭喜你,如果失敗了,繼續調試吧,作為程序員就是不停的與BUG做斗爭!、新建jsp頁面showUser.jsp 此頁面僅輸出一下用戶名,完成一個完整的簡單流程。 測試 $user.userName 、建立UserController類UserController.java 控制器package .hnust.controller;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import .hnust.pojo.User;import .hnust.service.IUserService;ControllerRequestMapping(/user)public class UserController Resourceprivate IUserService userService;RequestMapping(/showUser)public String toIndex(HttpServletRequest request,Model model)int userId = Integer.parseInt(request.getParameter(id);User user = this.userService.getUserById(use
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學校社團室管理制度
- 學校足球場管理制度
- 學生分小組管理制度
- 學監控管理管理制度
- 安全員智慧管理制度
- 安哥拉漁業管理制度
- 完善收發文管理制度
- 宜賓市采砂管理制度
- 實訓室鑰匙管理制度
- 客服質檢部管理制度
- 地面注漿施工方案
- 委托種植水果協議
- 《股骨粗隆間骨折》課件
- 深圳“20+8”之生物醫藥產業-前景機遇與技術趨勢探析報告-前瞻產業研究院
- 高壓電力知識培訓課件
- 2024煤礦安全生產條例、兩辦意見、硬措施試卷
- 2025年江蘇省安全員《A證》考試題庫及答案
- 老年社會工作期末復習題
- 《湯姆索亞歷險記》閱讀題及答案
- 鈉離子電池-武漢大學楊漢西老師文檔
- DB65-T 4824-2024 干旱區蒸散發量計算規范
評論
0/150
提交評論