主题:有关Spring3.x 整合myBatis3.1的轻量级框架 web
对于如今主流的j2ee企业级开发而言,ssh(struts+hibernate+spring)依然是一个事实的标准。 spring
由struts充当的mvc调度控制;hibernate的orm持久化映射;spring的ioc和aop的容器环境近乎于完美的框架组合。 sql
可是呢,在实际的开发工做中,因为程序猿对于技术、以及更加快速的解决方案的追求,咱们会愈来愈发现ssh框架所存在的诸多问题和困扰。 编程
Ssh框架存在的问题: session
1.随着spring mvc的快捷使用,咱们会发现spring mvc的做用和struts的整个功能,对基于mvc调度而已,存在严重的替代做用; mybatis
2.Hibernate虽然在orm方面给开发人员带来了很大的方面,程序猿能够基本上只须要关注程序的业务逻辑处理。可是呢,业务的复杂性和随意性永远不是那么简单的事,常常会遇到hibernate的配置方案没法知足业务逻辑,这时候灵活的SQL操做就显得很重要; mvc
3.你会发现,在使用ssh的时候,你愈来愈没法忍受框架的臃肿。须要配置不少文件,须要考虑多个框架的jar兼容问题,多个框架运行流转的麻烦等等; app
基于对以上存在的诸多问题的考虑,咱们急需一套更加轻量级、高效的框架。考虑到spring的高度解耦、灵活的设计。你会发现,spring mvc对于请求调度的处理;spring ioc对于容器的管理,很是的高效简洁。 框架
而后,就剩下一个orm产品。考虑到当前orm框架中,支持基于原生SQL操做,同时又高效、简洁,那就是MyBatis了。 ssh
这时候,你会发现框架其实也能够这般的简洁、灵活。尤为是基于REST风格的Spring3 MVC资源映射编程模型,编写的Code真的很优雅。那是至关的惊喜,编程之美。
以上呢,主要说了当前主流的ssh框架存在的一些问题,以及所以咱们能够选择的更加灵活、高效的新型框架Spring3.x集合Mybatis3.x。
下边呢,着重讲一下基于Spring3.x集合Mybatis3.x这种更加轻量级的框架的基本构成和相关配置文件。
Spring mvc的运行原理模型图例:
1.Web端发送了一个http请求,经过在web.xml中配置的Spring的核心Servlet控制器DispatcherServlet进行统一拦截。
2.Spring的核心DispatcherServlet,根据handlerMapping XML处理文件的配置,返回给spring核心处理器,并调度到handler匹配的请求的具体处理Controller。
3.Spring的用户Servlet处理器,根据请求的参数,进行具体的业务逻辑处理,而后返回相应的ModelAndView,给spring核心处理器。
4.Spring核心处理器Servlet根据用户Servlet返回的逻辑视图,返回相应的展现视图,相应用户请求。
Spring mvc基本上和主流的mvc框架的处理逻辑是一致的。下面主要讲一下spring的两个重要的配置文件。
applicationContext.xml(我我的认为,这就是单纯的spring的配置文件)
1.dataSource数据源的配置;
2.transactionManager事务管理;
3.sqlSessionFactory数据session工厂;
4.<tx:annotation-driven transaction-manager="transactionManager" />基于spring3的全注解事务管理驱动配置。
5.<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">spring集成mybatis的处mapper整包路径扫描。
context-dispatcher.xml(我我的认为,这其实就是相似于strut的配置文件,做用于spring mvc)
1.<mvc:annotation-driven />spring核心处理器的Handler映射和适配器服务注册
2.<context:component-scan base-package="com.matol.*" /> 基于全注解包路径扫描。
3.Spring的试图资源viewResolver注册
spring基本上也就是这些了,至于ssh中的ioc三层逐层依赖注入,和之前是同样的,惟一不一样的是,这些逐层的依赖注入,能够采用全注解的方式,进行配置。
好吧,先写到这里,懒得继续写了,凑合着看吧。