Spring是一个轻量级框架,用于组织中间层对象,如Hibernate和struts,实现中间件之间的高度解耦,是真正的面向接口编程,spring拥有20多个模块,包括核心容器,数据访问集成,Wb(serlvet,web),AOP模块等,相当于一个完整平台!如果把Tocamcat比做插座,那么spring就是才能够其中一个插位延伸出来的排插!
1----核心容器(Core Context):以Beans和Core为基础实现了BeanFactory类,提供了IOC和依赖注入,而Context就在Bean和Core的基础上集成,添加了国际化,资源加载,校验(监听)等功能
2----数据集成访问模块(JDBC , ORM , Transaction):此部分提供的是一套连接数据库的程序化的代码,减少了开发过程中连接失败,或者释放失败引起的一系列问题!Transction为事务模块,提供了对特定事务的支持,但是必须要求使用者实现特定的 接口!
3----Web模块:提供了Servlet支持,web支持,和Struats支持。Web提供了面向web的集成功能,如文件上传,使用监听器初始化IOC容器和Web上下文!而Servlet则是提供了模型-视图-控制器的实现
4----AOP模块:面向切面编程的实现,提供了拦截器和类似日志的切点,降低了耦合性并可以将某些横向行为插入到业务中!
5---Test模块:提供了Junit的测试功能,提供了一致的applicationContext并缓存上下文!
============================================================================
原版本Spring结构如下:
1---applicationContext.xml文件:用于配置基本的参数信息,加载Beans对象文件(最初的Spring每个对象都会有一个hbm.xml文件),拦截器,dataSource数据源,sessionFactor工厂,Hibernate框架,事务管理等!
2---User.hbm.xml文件:维护了这个对象里面属性的特点还有方法类型!
将java代码中对象间的依赖关系的控制权交给了Spring配置文件,由Spring来生成对象,并且设置对象间的依赖关系,这就是控制反转(IOC)或者叫依赖注入(DI),控制反转是指原本是由哪个Servlet对象调用哪个对象,那么就由该Servlet对象去负责创建被调用者的实例。现在创建对象的权利被Sprng的IOC容器接受了,所以称控制对象呗反转了!而依赖注入是指原本引用一个对象需要插件实例后通过实例调用,现在由于对象的创建都交给了Spring的IOC容器,我们可以直接在Servlet代码中通过配置或者注解依赖的方式注入!
在结合SpringMvc后的结构分析:
spring相当是一个外接延伸的排插,根据web项目的特点,我们同样需要在web.xml中维护其信息
//提高整合的融合度
|
到这一步,关于spring的信息就基本加载到web项目中,那么还需要两个文件用于配置spring框架所带来的简约化处理!
配置文件:
在resources包的 applicationContext.xml下配置Spring的全局扫描,以及AOP切面,以及外属性文件连接,定时调度等
|
其中datasource.properties是用于加载数据库连接的配置信息,而applicationContext-datasource.xml则是用于读取datasource的配置文件,里面除了维护以xml读取到的数据库连接信息外, 还建立了sessionFactory()用于连接数据库!以及数据库分页!在连接成功后,同时也配置mapperScannerConfigurer用于扫描-加载mappers里维护的xml文件里面的SQL!以及事务控制
以上为用于整合其他模式时候的spring,这个时候的spirng也是最简洁明了,因为原本属于sring的实现大部分都会被迁移,这也是目前大多数公司的用法