框架学习——SpringMvc+Spring+Mybatis集成

复习了下之前框架方面的知识,这次独立自己查看文档,搜百度将SpringMVC+Spring+Mybatis集成了。

这次集成版本是建Dynamic web Project,然后手动添加jar文件,配置文件而成。后面再出一个maven版本,废话不多说,我就开始写过程了。

首先三大框架基本概念:

一、SpringMvc

这里介绍SpringMVC我就不教课书似的介绍了,SpringMVC简单来说就是基于MVC模式,作为Spring家族的一个延续产品。除了SpringMVC,我们知道有Struts1,Struts2等框架。SpringMVC作为Spring 家族中的一员,其灵活性、扩展性更好。其核心为DispatcherServlet,本质上是基于HttpServlet实现的框架。

深入学习博客:http://www.cnblogs.com/baiduligang/p/4247164.html

二、Spring

springJ2EE应用程序框架,是轻量级的IoCAOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器。

其核心是IoC(Inversion of Control)控制反转,对象创建责任的反转,在springBeanFacotoryIoC容器的核心接口,负责实例化,定位,配置应用程序中的对象及建立这些对象间的依赖。XmlBeanFacotory实现BeanFactory接口,通过获取xml配置文件数据,组成应用对象及对象间的依赖关系。

还有向切面编程(AOP),项目中权限控制,字符过滤,日志管理等都会用到面向切面编程。

深入学习博客:http://blog.csdn.net/liujiahan629629/article/details/20735407

三、MyBatis

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.环境准备

  • Jdk环境:jdk1.6.0_31
  • Ide环境:eclipse indigo
  • 数据库环境:MySQL 5.7.1
  • SpringMVC:3.2.0
  • Spring:3.2.0
  • Mybatis:3.2.1

2.项目工程介绍

框架学习——SpringMvc+Spring+Mybatis集成_第1张图片

框架学习——SpringMvc+Spring+Mybatis集成_第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-jdbc-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),测试还有一些其它关联包。

4.配置文件说明

框架学习——SpringMvc+Spring+Mybatis集成_第3张图片

4.1 db.properties(数据库连接配置文件)

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql:///ssm

jdbc.username=root

jdbc.password=*****

这里就不多说了,与applicationContext.xml中引入datasource需传值的一样,详情看4.2章节  

4.2 applicationContext.xml

applicationContext.xml 作为集成Spring必不可少的配置文件,我们来对其进行说明。

配置这个文件,我们的一个大致思路应是从db.properties-->dataSource-->Mybaities-->SqlsessionFactoryBean-->Mapper-->Controller

  


             destroy-method="close">
        
        
        
        
    

    
    
        
        
        
        
        
        
    


    
        
        
    


    
             class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        
        
    

    
    
    
     
    

    
    
    
     
       
       
       
     

    

    
    
    
    
    
    
    

4.2 applicationContext-mvc.xml

applicationContext-mvc.XML是作为连接SpringMVC配置的,需要引入到applicationContext.xml中。

   
    
    
    
    
             class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        
        
        
        
    
    
    
        
        
            1048576
        

    



4.4 log4j.properties(日志管理配置文件)

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


4.5 Mapper文件简单说明


"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
(nameSpace为对应Mapper)
    

5.代码实现

5.1 建表+javabean(模型建立)

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;


框架学习——SpringMvc+Spring+Mybatis集成_第4张图片

这里的javabean需提供get,set方法。

5.2Mapper映射实现

回顾4.2章节 我们配置了

   
        
        
    

则在对应包路径下,我们对mapper进行映射接口实现

框架学习——SpringMvc+Spring+Mybatis集成_第5张图片

这里做一个简单说明:

   
        
        
        
        
        
        
    

在4.2章节中,我们向sqlsessionfactorybean中注入了datasource,并配置了Mybatis的映射文件。Mybatis会连接通过datasource与Xml有对象关系映射(ORM),然后通过我们配置的这个Mapper包路径对外提供Mapper文件对应操作接口。即UserMapper.xml中的操作与我们UserMapper.java对应,UserMapper.java中的get方法与xml中ID=‘get’的sql对应。

5.3 service实现

@Service
public class UserService implements IuserService{

    @Autowired
    UserMapper UserMapper;
    
    @Override
    public List get(String id) {
        return UserMapper.get(id);
    }

}

5.4Contoller实现

@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;
    }
    
}

6 最终实现效果+总结

我们可以通过访问服务器拿到数据。

SSM框架作为当下互联网比较流行的架构,有着众多的好处,SpringMVC安全性高,我是亲历去年Struts2漏洞爆发对公司产品的影响,大面积的病毒爆发,数据迁移,重新升级Struts2.当然这只是一个缩影,就工作上的体验而言,框架本身其实并不难,我们开发配置起来,跑起来,主要还是实现业务。难得是深入学习框架的思想,比较框架之间的差别,在做项目时合理的选择,基于控制成本,可维护,性能等综合的考虑,这需要我们深入了解每一款框架的原理和适用场景,这也是我们需要深入学习的。


7.资源分享

看大家对框架的集成还是很感兴趣,这里将自己的代码作为一个分享。希望大家用到:

http://download.csdn.net/download/qq_29178991/9972147

你可能感兴趣的:(企业级框架,ssm集成,spring,mvc,mybatis,spring)