这次集成版本是建Dynamic web Project,然后手动添加jar文件,配置文件而成。后面再出一个maven版本,废话不多说,我就开始写过程了。
首先三大框架基本概念:
这里介绍SpringMVC我就不教课书似的介绍了,SpringMVC简单来说就是基于MVC模式,作为Spring家族的一个延续产品。除了SpringMVC,我们知道有Struts1,Struts2等框架。SpringMVC作为Spring 家族中的一员,其灵活性、扩展性更好。其核心为DispatcherServlet,本质上是基于HttpServlet实现的框架。
深入学习博客:http://www.cnblogs.com/baiduligang/p/4247164.html
spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器。
其核心是IoC(Inversion of Control)控制反转,对象创建责任的反转,在spring中BeanFacotory是IoC容器的核心接口,负责实例化,定位,配置应用程序中的对象及建立这些对象间的依赖。XmlBeanFacotory实现BeanFactory接口,通过获取xml配置文件数据,组成应用对象及对象间的依赖关系。
还有向切面编程(AOP),项目中权限控制,字符过滤,日志管理等都会用到面向切面编程。
深入学习博客:http://blog.csdn.net/liujiahan629629/article/details/20735407
MyBatis和Hibernate一样,是一个优秀的持久层框架。已经说过很多次了,原生的jdbc操作存在大量的重复性代码(如注册驱动,创建连接,创建statement,结果集检测等)。框架的作用就是把这些繁琐的代码封装,这样可以让程序员专注于sql语句本身。
MyBatis通过XML或者注解的方式将要执行的sql语句配置起来,并通过java对象和sql语句映射成最终执行的sql语句。最终由MyBatis框架执行sql,并将结果映射成java对象并返回。
这段直接引用博客:http://blog.csdn.net/qq_32166627/article/details/70741729
四、SpringMvc+Spring+Mybatis集成案例
1.环境准备
2.项目工程介绍
3.jar包引入
mybatis:
mybatis-3.2.1.jar
mybatis-spring-1.2.0.jar
Spring:
spring-core-3.2.0.RELEASE.jar
spring-beans-3.2.0.RELEASE.jar
spring-aop-3.2.0.RELEASE.jar
spring-expression-3.2.0.RELEASE.jar
spring-context-3.2.0.RELEASE.jar
spring-aspects-3.2.0.RELEASE.jar
spring-orm-3.2.0.RELEASE.jar
spring-test-3.2.0.RELEASE.jar
spring-tx-3.2.0.RELEASE.jar
spring-web-3.2.0.RELEASE.jar
SpringMVC:
spring-webmvc-3.2.0.RELEASE.jar
数据库连接(MYSQL):
mysql-connector-java-5.1.24-bin.jar
连接池:
com.springsource.org.apache.commons.dbcp-1.2.2.osgi.jar
com.springsource.org.apache.commons.pool-1.5.3.jar
日志:
slf4j-api-1.7.2.jar
slf4j-log4j12-1.7.2.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
commons-logging-1.1.1.jar
log4j-1.2.17.jar
测试:
junit-4.11.jar
其他:
asm-3.3.1.jar
cglib-2.2.2.jar
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.apache.commons.fileupload-1.2.0.jar
com.springsource.org.apache.commons.io-1.4.0.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
hamcrest-all-1.3.jar
javassist-3.17.1-GA.jar
对这些包进行了简单的分类,可以简单将其分为SpringMvc,Spring,Mybatis,数据库连接,日志(基于slf4j),测试还有一些其它关联包。
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///ssm
jdbc.username=root
jdbc.password=*****
这里就不多说了,与applicationContext.xml中引入datasource需传值的一样,详情看4.2章节
applicationContext.xml 作为集成Spring必不可少的配置文件,我们来对其进行说明。
配置这个文件,我们的一个大致思路应是从db.properties-->dataSource-->Mybaities-->SqlsessionFactoryBean-->Mapper-->Controller
applicationContext-mvc.XML是作为连接SpringMVC配置的,需要引入到applicationContext.xml中。
log4j.rootLogger=ERROR, stdout
#log4j.rootLogger=NONE
log4j.logger.cn.itsource=TRACE
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%dkm%p [%c] - %m%n
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8_bin DEFAULT NULL,
`password` varchar(255) COLLATE utf8_bin DEFAULT NULL,
`height` double DEFAULT NULL,
`weight` double DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
这里的javabean需提供get,set方法。
回顾4.2章节 我们配置了
则在对应包路径下,我们对mapper进行映射接口实现
这里做一个简单说明:
在4.2章节中,我们向sqlsessionfactorybean中注入了datasource,并配置了Mybatis的映射文件。Mybatis会连接通过datasource与Xml有对象关系映射(ORM),然后通过我们配置的这个Mapper包路径对外提供Mapper文件对应操作接口。即UserMapper.xml中的操作与我们UserMapper.java对应,UserMapper.java中的get方法与xml中ID=‘get’的sql对应。
@Service
public class UserService implements IuserService{
@Autowired
UserMapper UserMapper;
@Override
public List
return UserMapper.get(id);
}
}
@Controller
@RequestMapping("user")
public class UserContorller {
/**
*
*/
private static final long serialVersionUID = 1L;
@Autowired
public IuserService userService;
private String id;
@RequestMapping("list")
public String list(Model model){
model.addAttribute("depts", userService.get("1"));
return "/user/list";
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
我们可以通过访问服务器拿到数据。
SSM框架作为当下互联网比较流行的架构,有着众多的好处,SpringMVC安全性高,我是亲历去年Struts2漏洞爆发对公司产品的影响,大面积的病毒爆发,数据迁移,重新升级Struts2.当然这只是一个缩影,就工作上的体验而言,框架本身其实并不难,我们开发配置起来,跑起来,主要还是实现业务。难得是深入学习框架的思想,比较框架之间的差别,在做项目时合理的选择,基于控制成本,可维护,性能等综合的考虑,这需要我们深入了解每一款框架的原理和适用场景,这也是我们需要深入学习的。
7.资源分享
看大家对框架的集成还是很感兴趣,这里将自己的代码作为一个分享。希望大家用到:
http://download.csdn.net/download/qq_29178991/9972147