SSM框架——詳細整合教程(Spring+SpringMVC+MyBatis).doc_第1頁
SSM框架——詳細整合教程(Spring+SpringMVC+MyBatis).doc_第2頁
SSM框架——詳細整合教程(Spring+SpringMVC+MyBatis).doc_第3頁
SSM框架——詳細整合教程(Spring+SpringMVC+MyBatis).doc_第4頁
SSM框架——詳細整合教程(Spring+SpringMVC+MyBatis).doc_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、SSM框架一一詳細整合教程(Spring+SpringMVC+MyBatis )SSM 框架詳細整合教程(Spring+SpringMVC+MyBatis)1、基本概念1.1、 SpringSpring是一個開源框架,Spring是于2003年興起的一個輕量級的 Java 開發(fā)框架,由 Rod Johnson 在其著作 Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。它是為 了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean 來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于 服

2、務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任彳Java 應(yīng)用都可以從Spring中受益。簡單來說,Spring是一個輕量級的控 制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。1.2、 SpringMVCSpring MVC屬于SpringFrameWork的后續(xù)產(chǎn)品,已經(jīng)融合在Spring Web Flow里面。Spring MVC分離了控制器、模型對象、分派器以及處理程序?qū)ο蟮慕巧?,這種分離讓它們更容易進行定制。1.3、 MyBatisMyBatis本是apache的一個開源項目iBatis, 2010年這個項目由 apache software foundation 遷移至了

3、google code, 并且改名為 MyBatis 。 MyBatis是一個基于Java的持久層框架。iBATIS提供的 持久層框架包括 SQL Maps 和 Data Access Objects DAO) MyBatis 消 除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。MyBatis使用簡單的XML或注解用于配置和原始映射,將接口和 Java 的 POJOs(Plain Old Java Objects 普通的 Java對象)映射成數(shù) 據(jù)庫中的記錄。2、開發(fā)環(huán)境搭建如果需要, 參看之前的博文:3、Maven Web項目創(chuàng)建如果需要, 參看之前的博文:4、SSM整合F面主要

4、介紹三大框架的整合,至于環(huán)境的搭建以及項目的創(chuàng)建,參看上面的博文。這次整合我分了2個配置文件,分別是spring-mybatis.xml, 包含 spring 和 mybatis 的配置文件,還有個是spring-mvc的配置文件,此外有 2個資源文件:pertis和 perties。完整目錄結(jié)構(gòu)如下(最后附上源碼下載地址,不建議直接使用源碼,因為此教程已經(jīng)有了全部代碼):使用框架都是較新的版本:Spring 4.0.2 RELEASESpring MVC 4.0.2 RELEASEMyBatis 、 Maven引入需要的JAR包為了方便后面說

5、的時候不需要引入 JAR包,我這里直接給出所 有需要的JAR包,這都是基本的JAR包,每個包的是干什么的都有 注釋,就不再多說了。pom.xml4.0.2.RELEASE.71.2.17junitjunit4.11 testorg.springframeworkspring-core$spring.version org.springframework spring-web $spring.versionorg.springframework spring-oxm $spring.versionorg.springframework spring-tx $spring.vers

6、ionorg.springframework spring-jdbc$spring.version org.springframework spring-webmvc $spring.versionorg.springframework spring-aop $spring.version org.springframeworkspring-context-support$spring.versionorg.springframeworkspring-test$spring.version org.mybatismybatis$mybatis.version org.mybatismybati

7、s-spring1.2.2 javaxjavaee-api7.0 mysqlmysql-connector-java5.1.30 commons-dbcpcommons-dbcp1.2.2 jstljstl1.2log4j log4j$log4j.version com.alibabafastjson1.1.41 org.slf4jslf4j-api$slf4j.versionorg.slf4jslf4j-log4j12$slf4j.version org.codehaus.jacksonjackson-mapper-asl1.9.13commons-fileupload commons-fi

8、leupload 1.3.1commons-iocommons-io2.4commons-codeccommons-codec1.94.2、 Spring 與 MyBatis 的整合所有需要的JAR包都引入以后,首先進行Spring與MyBatis的整合,然后再進行JUnit測試,先看一個項目結(jié)構(gòu)圖:421、建立JDBC屬性文件perties (文件編碼修改為 utf-8)driver=com.mysql.jdbc.Driverurl=jdbc:mysql:11:8080/db_zslusername=demaopassword=demao# 定義初始連接

9、數(shù)initialSize=0# 定義最大連接數(shù)maxActive=20# 定義最大空閑maxIdle=20# 定義最小空閑minIdle=1# 定義最長等待時間maxWait=60000# 22、建立 spring-mybatis.xml 配置文件這個文件就是用來完成spring和mybatis的整合的。這里面也沒 多少行配置,主要的就是自動掃描,自動注入,配置數(shù)據(jù)庫。注釋也 很詳細,大家看看就明白了。spring-mybatis.xmlxmlns:xsi="http:/2001/XMLSchema-instance" xmlns:p="htt

10、p://schema/p"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-31xs

11、d/schema/contexthttp:/www.springframework.Org/schema/context/spring-context-3.1.xsd/schema/mvc/schema/mvc/spring-mvc-4.0.xsd">class="org.springframework.beans.factory.config.PropertyPlaceholderConfigu

12、rer"destroy-method="close">class="org.springframework.jdbc.datasource.DataSourceTransactionManager"423、Log4j的配置為了方便調(diào)試,一般都會使用日志來輸出信息,Log4j是Apache的一個開放源代碼項目,通過使用 Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件,甚至是套接口服務(wù)器、NT 的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日 志的輸出格式;通過定義每一條日志信息的級別,我們能夠更

13、加細致 地控制日志的生成過程。Log4j的配置很簡單,而且也是通用的,下面給出一個基本的配置, 換到其他項目中也無需做多大的調(diào)整,如果想做調(diào)整或者想了解Log4j的各種配置,參看我轉(zhuǎn)載的一篇博文,很詳細:下面給出配置文件目錄:perties# 定義LOG輸出級別log4j.rootLogger=INFO,Console,File# 定義日志輸出目的地為控制臺log4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.Target=System.out# 可以靈活地指定日志輸出格式,

14、下面一行是指定具體的格式log4j.appender.Console.layout = org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=%c - %m%n# 文件大小到達指定尺寸的時候產(chǎn)生一個新的文件log4j.appender.File = org.apache.log4j.RollingFileAppender# 指定輸出目錄log4j.appender.File.File = logs/ssm.log# 定義文件最大大小log4j.appender.File.MaxFileSize

15、 = 10MB# 輸出所以日志,如果換成DEBUG表示輸出DEBUG以上級別日志log4j.appender.File.Threshold = ALLlog4j.appender.File.layout = org.apache.log4j.PatternLayoutlog4j.appender.File.layout.ConversionPattern =%p %dyyyy-MM-ddHH:mm:ss%c%m%n4.2.4、 JUnit 測試經(jīng)過以上步驟(到4.2.2, log4j不配也沒影響),我們已經(jīng)完成了Spring和mybatis的整合,這樣我們就可以編寫一段測試代碼來試試 是否成功

16、了。424.1、 創(chuàng)建測試用表既然我們需要測試,那么我們就需要建立在數(shù)據(jù)庫中建立一個測試表,這個表建的很簡單,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 (

17、'id') ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULTCHARSET=utf8;/*Data for the table 'user_t' */ insert into 'user_t'('id','user_name','password','age') values (1,測 試,sfasgfaf,24);424.2、 利用MyBatis Generator自動創(chuàng)建代碼參考博文:這個可根據(jù)表自動創(chuàng)建實體類、MyBatis映射文件以及DAO接口,

18、當(dāng)然,我習(xí)慣將生成的接口名改為IUserDao,而不是直接用它生成的 UserMapper。如果不想麻煩就可以不改。完成后將文件復(fù)制到工程中。 如圖:4243 建立Service接口和實現(xiàn)類目錄結(jié)構(gòu):F面給出具體的內(nèi)容:IUserService.javepackage .hnust.service;import .hnust.pojo.User;public interface lUserService public User getUserById(int userId);UserServiceImpl.javapackage .hnust.service.impl;import javax

19、.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 lUserDao userDao;Overridepublic User getUserBy

20、Id(int userid) / TODO Auto-generated method stubreturn this.userDao.selectByPrimaryKey(userid); 4244建立測試類測試類在src/test/java中建立,下面測試類中注釋掉的部分是不使用Spring時,一般情況下的一種測試方法;如果使用了 Spring那么 就可以使用注解的方式來引入配置文件和類,然后再將service接口對象注入,就可以進行測試了。如果測試成功,表示Spring和Mybatis已經(jīng)整合成功了。輸出信 息使用的是Log4j打印到控制臺。package org.zsl.testmyb

21、atis;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;importorg.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework

22、.test.context.ContextConfiguration;importorg.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.alibaba.fastjson.JSON;import .hnust.pojo.User;import .hnust.service.IUserService;RunW讓h(SpringJUnit4ClassRunner.class) 表示繼承了SpringJUnit4ClassRunner 類ContextConfiguration(locations = &q

23、uot;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=newClassPathXmlApplicationContext("applica

24、tionContext.xml");/ userService = (IUserService) ac.getBean("userService");/ Testpublic void test1() User user = userService.getUserById(1);/ System.out.println(user.getUserName(); ("值:"+user.getUserName();(JSON.toJSONString(user);測試結(jié)果:至此,完成Spring和mybat

25、is這兩大框架的整合,下面在繼續(xù)進行SpringMVC的整合4.3、 整合 SpringMVC上面已經(jīng)完成了 2大框架的整合,SpringMVC的配置文件單獨 放,然后在web.xml中配置整合。4.3.1、 酉己置 spring-mvc.xml配置里面的注釋也很詳細,在此就不說了,主要是自動掃描控制器, 視圖模式,注解的啟動這三個。xmlns:xsi="http:/2001/XMLSchema-instance"xmlns:p="/schema/p"xmlns:context

26、="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-31xsd /schema/contexthttp:/ww

27、w.springframework.Org/schema/context/spring-context-3.1.xsd/schema/mvc/schema/mvc/spring-mvc-4.0.xsd">class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">text/html;charset=UTF-8class="o

28、rg.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> class="mons.CommonsMultipartResolver">4.3.2、 配置 web.xml 文件這里面對spring-mybatis.xml的引入以及配置的 spring-mvc的Servlet就是為了完成SSM整合,之前2框架整合不需要在此處進行 任何配置。配置一樣有詳細注釋,不多解釋了。web.xmlxmlns="xsi:schemaLocation="

29、version="3.0">Archetype Created Web ApplicationcontextConfigLocationclasspath:spring-mybatis.xml encodingFilterorg.springframework.web.filter.CharacterEncodingFilter trueencodingUTF-8encodingFilter/*org.springframework.web.context.ContextLoaderListener org.springframework.web.util.IntrospectorCleanupListenerSpringMVCorg.springframework.web.servlet.DispatcherServletcontextConfigLocationclasspath:spring-mvc.xml1trueSpringMVC/index.jsp4.3.3、 測試至此已經(jīng)完成了 SSM三大框架的整合了,接下來測試一下,如 果成功了,那么恭喜你,如果失

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論