Spring是一个轻量级的IoC和AOP框架
1:轻量级--从大小和系统开支来说Spring都算是轻量级的。整个Spring框架可以打成一个1MB多一点的Jar包,并且Spring的处理开支也非常小,更重要的是,Spring是非侵入式的:基于Spring开发的系统中的对象一般都不依赖于Spring的类。
2:反向控制--Spring提倡使用反向控制(IoC)来实现松耦合。使用IoC,对象是被动接受依赖类而不是自己主动去找。可以将IoC理解为JNDI的反转(对象不是从容器中查找它的依赖类,而是容器在实例化对象的时候主动将它的依赖类注入给它)
3:面向切面--Spring对面向切面编程提供了强大的支持,通过将业务逻辑从系统服务(如监控和事务管理)中分离出来,实现类聚开发。系统对象只做它们该做的(业务逻辑),它们不负责(或关心)其他系统问题(如日志和事务管理)
4:容器--Spring是一个容器,是因为它包含并且管理系统对象的生命周期和配置。可以通过配置来设定你的Bean是单一实例,还是每次请求产生一个实例,并且设定它们之间的关联关系。Spring有别于传统的重量级EJB容器,这些容器通常很大,很笨重。
5:框架--Spring实现了使用简单的组件配置组成一个复杂的系统。在Spring中,系统中的对象是通过XML文件配置组合起来的。并且Spring提供了很多基础功能(事务管理,持久层集成等),这使开发人员能够专注于开发应用逻辑。
Spring模块
Spring框架由七个模块组成。从整体上来看,这七个模块提供了开发企业级系统所需要的一切。但不必将系统完全建立在Spring框架上,可以自由选择适合自己系统的模块,而不使用其它模块。Spring的所有模块都是建立在核心容器之上的,容器规定如何创建,配置和管理Bean,以及很多Spring的具体细节。当配置系统的时候,就隐式地使用了这些类。

核心容器:Spring核心容器为Spring框架提供了基础功能。在这个模块中可以找到BeanFactory这个类。它是所有基于Spring框架系统的核心。BeanFactory采用工厂模式来实现IoC,它将系统的配置和依赖关系从代码中独立出来。
Application Context(上下文模块):如果说核心模块中的BeanFactory使Spring成为容器的话,那么上下文模块就是使Spring成为框架的原因。这个模块扩展了BeanFactory,添加了对I18N(国际化),系统生命周期事件以及验证的支持。另外,这个模块还提供了很多企业级服务,如电子邮件服务,JNDI访问,EJB集成,远程调用以及定时服务,并且支持与模板框架(如Velocity和FreeMarker)的集成。
Spring的AOP模块:在AOP模块中,Spring对面向切面提供了丰富的支持。这个模块是为Spring应用系统开发切面的基础。为了确保Spring与其它AOP框架之间的互通,Spring的大部分AOP都是基于AOP Alliance的API开发的。AOP Alliance是一个开源项目,它的目的是促进AOP的使用,并且通过定义一套通用接口和组件来确保不同的AOP之间的互通性。Spring AOP模块也引入了metadata编程,使用Spring的metadata,可以通过代码中的注解来告诉Spring在哪里以及如何应用切面。
JDBC抽象及DAO模块:编写JDBC代码时总是要写一些样板式的代码,如:获得连接,创建语句,处理语句,最后关闭连接。Spring的JDBC和DAO模块把这些样板式的代码抽象出来,让数据库代码变得简单明了,也可以避免因为释放数据库资源失败而引起的问题。这个模块还建立了一个容易理解的数据库异常层,它建立在各种数据库错误信息之上,以后就不用再去解释那些隐晦专有的SQL错误信息了。另外,该模块利用Spring的AOP模块为Spring系统中的对象提供事务管理服务。
O/R映射集成模块:Spring为那些喜欢使用ORM工具的开发人员提供了ORM模块。Spring不想实现自己的ORM解决方案,但是它为许多流行的ORM框架做了钩子程序,包括Hibernate,JDO,和iBatis SQL映射。Spring的事务管理支持所有这些ORM框架以及JDBC。
Spring的Web模块:Web上下文模块建立在应用上下文模块的基础之上,提供了适合Web系统的上下文。另外,该模块还支持多项其它面向Web的任务,如透明处理多文件上传请求,自动将请求参数绑定到业务对象中等。这个模块还包括对Struts的集成支持。
Spring MVC模块:Spring为Web系统建立了全功能的MVC框架。虽然Spring可以很容易的与其它MVC框架(如struts)集成,但是Spring的MVC框架利用IoC将控制逻辑和业务逻辑清晰的分离开来。可以自己声明如何将请求参数绑定到业务对象中。另外,Spring的MVC框架还可以使用Spring的其它服务,如信息国际化(I18N)和验证服务。
浙公网安备 33010602011771号