Spring简介及使用Spring的好处

白俊遥博客

1.1. Spring简介


Spring是一个开源的控制反转(IoC)和面向切面(AOP)的容器框架。它的主要目是简化应用的开发。
Spring的IOC容器包含并管理应用对象的配置和生命周期,你可以配置你的每个bean如何被创建,也可以配置每个bean是只有一个实例,还是每次需要时都生成一个新的实例,以及它们是如何相互关联的。
Spring提供了很多基础的与业务逻辑无关的功能,比如:事务管理、持久化框架集成等等。
Spring的模块图如下所示:
[img][/img]
Spring以一种非侵入式的方式来管理你的代码,Spring提倡”最少侵入”,这也就意味着你可以适当的时候安装或卸载Spring。
Spring是一个轻量级容器架构。怎么区争一个框架是属于轻量级框架还是属于重量框架呢?其实划分一个应用是否属于轻量级还是重量级,主要看它使用了多少服务。使用的服务越多,容器要为普通java对象做的工作就越多,必然会影响到应用的发布时间或者运行性能,就属于重量级的,反之就是轻量级的。
[img][/img]
对于spring容器,它提供了很多服务,但这些服务并不是默认为应用打开的,应用需要某种服务,就需要指明使用该服务。如果应用使用的服务很少,如:只使用了spring核心服务,那么我们可以认为此时应用属于轻量级的,如果应用使用了spring提供的大部分服务,这时应用就属于重量级。目前EJB容器就因为它默认为应用提供了EJB规范中所有的功能,所以它属于重量级。
Spring框架的主页:http://www.springsource.org/
下载地址:http://www.springsource.org/download

1.2. 使用Spring有什么好处



在项目中引入spring立即可以带来下面的好处
· 降低组件之间的耦合度,实现软件各层之间的解耦。
· 可以使用容器提供的众多服务,如:事务管理服务、消息服务等等。当我们使用容器管理事务时,开发人员就不再需要手工控制事务.也不需处理复杂的事务传播。
[img][/img]
· 容器提供单例模式支持,开发人员不再需要自己编写实现代码。
· 容器提供了AOP技术,利用它很容易实现如权限拦截、运行期监控等功能。
· 容器提供的众多辅作类,使用这些类能够加快应用的开发,如: JdbcTemplate、 HibernateTemplate。
· Spring对于主流的应用框架提供了集成支持,如:集成Hibernate、JPA、Struts等,这样更便于应用的开发。
一、如果使用Spring, 我们就不再需要手工控制事务:
[img][/img]
使用Spring后,代码变为:
@Transactional
Public void save(){
sessionFactory.getCurrentSession().save(info);
}
二、如果使用spring, 我们也不需要处理复杂的事务传播行为
public void payment(){
Bean1.update();//更新金额
Bean2.save();//记录操作日志
}
如果我们不使用Spring,针对下面这两种业务需求,我们该如何做?
第1种可能的业务需求:要求Bean1.update()和Bean2.save()在同一个事务中执行。