SSM三大框架的整合.doc

上传人:知****量 文档编号:83079762 上传时间:2023-03-28 格式:DOC 页数:46 大小:354.54KB
返回 下载 相关 举报
SSM三大框架的整合.doc_第1页
第1页 / 共46页
SSM三大框架的整合.doc_第2页
第2页 / 共46页
点击查看更多>>
资源描述

《SSM三大框架的整合.doc》由会员分享,可在线阅读,更多相关《SSM三大框架的整合.doc(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、SSM三大框架的整合SSM三大框架的整合(Spring+SpringMVC+MyBatis)前记:曹孟,崔佳媚和我在11月23日参加了一次关于SSM的比赛,因此对SSM有点理解,所以在网上搜集了一些关于SSM框架的资料整理出来。目录SSM三大框架的整合(Spring+SpringMVC+MyBatis)11、基本概念21.1、Spring21。2、SpringMVC21.3、MyBatis22、整合步骤32。1、Maven引入需要的JAR包32。2、Spring与MyBatis的整合92。3、整合SpringMVC20补充一30配置实例演示39461、基本概念1。1、Spring Spring

2、是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由RodJohnson在其著作ExpertOne-OnOneJ2EEDevelopmentandDesign中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架.1。2、SpringMVC SpringMVC属

3、于SpringFrameWork的后续产品,已经融合在SpringWebFlow里面。SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。1。3、MyBatis MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQLMaps和DataAccessObjects(DAO)MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集

4、的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(PlainOldJavaObjects,普通的Java对象)映射成数据库中的记录。2、开发环境搭建如果需要,参看之前的博文:http:/blog。3、Maven Web项目创建如果需要,参看之前的博文:http:/blog.csdn。net/zhshulin/article/details/379217054、SSM整合 下面主要介绍三大框架的整合,至于环境的搭建以及项目的创建,参看上面的博文。这次整合我分了2个配置文件,分别是springmybatis。xml,包含spring和mybatis的配置

5、文件,还有个是springmvc的配置文件,此外有2个资源文件:jdbc.propertis和log4j。properties。完整目录结构如下:使用框架都是较新的版本: Spring4.0.2RELEASE SpringMVC4.0。2RELEASE MyBatis3。2。62、整合步骤2。1、Maven引入需要的JAR包 为了方便后面说的时候不需要引入JAR包,我这里直接给出所有需要的JAR包,这都是基本的JAR包,每个包的是干什么的都有注释,就不再多说了.pom。xmlspring。version4。0。2.RELEASEmybatis.version3。2。6slf4j.version

6、1.7.7log4j。version1.2。17/log4j.version/propertiesdependencygroupIdjunit/groupIdartifactIdjunitversion4。11!- 表示开发的时候引入,发布的时候不会加载此包 -scopetest!- spring核心包 -dependencygroupIdorg。springframework/groupIdartifactIdspring-core/artifactIdversionspring。version/versiondependencygroupIdorg.springframeworkartif

7、actIdspringweb/artifactIdversionspring.version/dependencyorg。springframeworkspring。version/versiondependencygroupIdorg.springframework/groupIdartifactIdspringtxspring.version/version/dependencydependencyorg.springframework/groupIdartifactIdspringjdbc/artifactIdversionspring。version/versionorg。spring

8、framework/groupIdartifactIdspringwebmvc/artifactIdversion$spring。version/versionorg。springframework/groupIdspring-aop/artifactIdversionspring。versionorg.springframework/groupIdartifactIdspringcontextsupport$spring.version/versiondependencygroupIdorg。springframeworkartifactIdspring-test/artifactIdver

9、sionspring。version/version/dependency!- mybatis核心包 -groupIdorg.mybatisversion$mybatis。version/version/dependency!- mybatis/spring包 dependencyorg。mybatis/groupIdartifactIdmybatisspring/artifactIdversion1.2。2/dependency! 导入java ee jar 包 -javax/groupIdartifactIdjavaeeapiversion7。0/version/dependency!-

10、导入Mysql数据库链接jar包 groupIdmysqlartifactIdmysql-connector-java/artifactIdversion5。1.30/dependency! 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -dependencygroupIdcommonsdbcpcommonsdbcp!- JSTL标签类 -dependencygroupIdjstlartifactIdjstl/artifactId1.2/version/dependency!- 日志文件管理包 -!- log start -groupIdlog4j/g

11、roupIdartifactIdlog4j/artifactIdlog4j。version! 格式化对象,方便输出日志 dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1。1.41/version/dependencygroupIdorg.slf4jslf4japi/artifactId$slf4j.version/version/dependencygroupIdorg.slf4jartifactIdslf4jlog4j12/artifactIdversionslf4j.version/versi

12、on!- log end -dependencyorg.codehaus。jackson/groupIdartifactIdjackson-mapper-asl/artifactIdversion1.9。13/version/dependency! 上传组件包 -dependencycommonsfileupload/groupIdartifactIdcommons-fileupload/artifactIdversion1。3.1/versiondependencycommonsio/groupIdartifactIdcommonsio/artifactId2。4/versiongroupI

13、dcommonscodec/groupIdcommonscodec/artifactIdversion1.92。2、Spring与MyBatis的整合所有需要的JAR包都引入以后,首先进行Spring与MyBatis的整合,然后再进行JUnit测试,先看一个项目结构图:2.2。1、建立JDBC属性文件jdbc。properties(文件编码修改为utf-8)driver=com.mysql.jdbc.Driverurl=jdbc:mysql:/10.221.10.111:8080/db_zslusername=demaopassword=demao#定义初始连接数initialSize=0#定

14、义最大连接数maxActive=20定义最大空闲maxIdle=20#定义最小空闲minIdle=1#定义最长等待时间maxWait=600002.2.2、建立springmybatis。xml配置文件 这个文件就是用来完成spring和mybatis的整合的.这里面也没多少行配置,主要的就是自动扫描,自动注入,配置数据库。注释也很详细,大家看看就明白了。springmybatis.xml?xml version=1.0 encoding=UTF-8”?beans xmlns=http:/www。springframework.org/schema/beansxmlns:xsi=”http:/

15、www.w3.org/2001/XMLSchema-instance” xmlns:p=”http:/www.springframework.org/schema/pxmlns:context=http:/www。springframework。org/schema/contextxmlns:mvc=http:/www.springframework.org/schema/mvcxsi:schemaLocation=”http:/www。springframework。org/schema/beans http:/www.springframework。org/schema/beans/spr

16、ingbeans-3.1。xsd http:/www。springframework.org/schema/context http:/www.springframework。org/schema/context/springcontext-3.1.xsd http:/www。springframework。org/schema/mvc http:/www。springframework。org/schema/mvc/springmvc-4。0.xsd!- 自动扫描 -context:componentscan base-package=”com。cn。hnust” /property nam

17、e=location” value=classpath:jdbc。properties /bean id=”dataSource” class=org.apache。commons.dbcp.BasicDataSource”destroy-method=closeproperty name=”username value=”$username” /property name=”initialSize” value=initialSize”property name=”maxActive value=$maxActive!- 连接池最大空闲 property name=”maxIdle” val

18、ue=”$maxIdle”/property! 连接池最小空闲 -property name=minIdle” value=minIdle”/property! 获取连接最大等待时间 !- spring和MyBatis完美整合,不需要mybatis的配置映射文件 bean id=”sqlSessionFactory class=”org.mybatis。spring.SqlSessionFactoryBean”property name=dataSource” ref=dataSource /! 自动扫描mapping.xml文件 -/property/beanbean class=org.m

19、ybatis。spring。mapper.MapperScannerConfigurerproperty name=sqlSessionFactoryBeanName” value=”sqlSessionFactory”/bean!- (事务管理)transaction manager, use JtaTransactionManager for global tx bean id=”transactionManager”class=org。springframework.jdbc.datasource。DataSourceTransactionManager/bean2。2.3、Log4j的

20、配置 为了方便调试,一般都会使用日志来输出信息,Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIXSyslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程. Log4j的配置很简单,而且也是通用的,下面给出一个基本的配置,换到其他项目中也无需做多大的调整,如果想做调整或者想了解Log4j的各种配置,参看我转载的一篇博文,很详细:http:/blog。下面给出配置文件目录:log4j.properties#

21、定义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#文件

22、大小到达指定尺寸的时候产生一个新的文件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。PatternLayoutlog4

23、j。appender。File。layout.ConversionPattern =%p %dyyyyMMdd HH:mm:ss%cm%n2.2。4、JUnit测试 经过以上步骤(到4.2.2,log4j不配也没影响),我们已经完成了Spring和mybatis的整合,这样我们就可以编写一段测试代码来试试是否成功了。2.2.4.1、创建测试用表既然我们需要测试,那么我们就需要建立在数据库中建立一个测试表,这个表建的很简单,SQL语句为:DROP TABLE IF EXISTS user_t;CREATE TABLE user_t ( id int(11) NOT NULL AUTO_INCRE

24、MENT, 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);2。2。4。2、利用MyBatis Generator自动创建代码参考博文:h

25、ttp:/blog.csdn。net/zhshulin/article/details/23912615 这个可根据表自动创建实体类、MyBatis映射文件以及DAO接口,当然,我习惯将生成的接口名改为IUserDao,而不是直接用它生成的UserMapper.如果不想麻烦就可以不改。完成后将文件复制到工程中。如图:2。2.4。3、建立Service接口和实现类目录结构:下面给出具体的内容:IUserService.javepackage com。cn.hnust。service;import com。cn。hnust。pojo.User;public interface IUserServi

26、ce public User getUserById(int userId);UserServiceImpl。javapackage com。cn.hnust。service.impl;import javax。annotation.Resource;import org。springframework。stereotype.Service;import com。cn。hnust.dao.IUserDao;import 。hnust.pojo.User;import com。cn。hnust。service。IUserService;Service(userService)public cla

27、ss UserServiceImpl implements IUserService Resourceprivate IUserDao userDao;Overridepublic User getUserById(int userId) / TODO Auto-generated method stubreturn this.userDao。selectByPrimaryKey(userId);2。2.4。4、建立测试类 测试类在src/test/java中建立,下面测试类中注释掉的部分是不使用Spring时,一般情况下的一种测试方法;如果使用了Spring那么就可以使用注解的方式来引入配置

28、文件和类,然后再将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.Application

29、Context;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 com。cn。hnust.service.I

30、UserService;RunWith(SpringJUnit4ClassRunner。class)/表示继承了SpringJUnit4ClassRunner类ContextConfiguration(locations = classpath:springmybatis.xml)public class TestMyBatis private static Logger logger = Logger.getLogger(TestMyBatis。class);/private ApplicationContext ac = null;Resourceprivate IUserService

31、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();/ logger.info(值:+user。getUs

32、erName());logger。info(JSON。toJSONString(user));测试结果:至此,完成Spring和mybatis这两大框架的整合,下面在继续进行SpringMVC的整合。2.3、整合SpringMVC 上面已经完成了2大框架的整合,SpringMVC的配置文件单独放,然后在web.xml中配置整合。2。3.1、配置springmvc。xml配置里面的注释也很详细,在此就不说了,主要是自动扫描控制器,视图模式,注解的启动这三个.?xml version=1.0 encoding=UTF8”?beans xmlns=http:/www.springframework。

33、org/schema/beansxmlns:xsi=http:/www。w3.org/2001/XMLSchemainstance” xmlns:p=”http:/www。springframework。org/schema/p”xmlns:context=”http:/www。springframework。org/schema/context”xmlns:mvc=http:/www。springframework。org/schema/mvcxsi:schemaLocation=”http:/www.springframework。org/schema/beans http:/www。sp

34、ringframework。org/schema/beans/spring-beans-3.1.xsd http:/www。springframework.org/schema/context http:/www.springframework。org/schema/context/spring-context3.1。xsd http:/www。springframework。org/schema/mvc http:/www。springframework.org/schema/mvc/springmvc4。0。xsdcontext:component-scan basepackage=.hn

35、ust.controller” /!-避免IE执行AJAX时,返回JSON出现下载文件 -bean id=mappingJacksonHttpMessageConverter”class=”org。springframework。http.converter。json.MappingJacksonHttpMessageConverter”property name=”supportedMediaTypes”valuetext/html;charset=UTF-8/value/list/property/beanbeanclass=”org。springframework。web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter”property name=”messageConverterslist!- JSON转换器 /list/bean!- 定义跳转的文件的前

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁