您的位置:首页 > 编程语言 > Java开发

Spring v3.0.2 Learning Note 1 - Introduction to Spring Framework

2010-10-25 10:59 387 查看
官网地址
http://www.springsource.org/
控制反转 Inversion of Control

public class PersonManager {

IPersonDao personDao = new PersonDao();

public void save(Person person) {

personDao.save(person);

}

}

类PersonManager依赖于类PersonDao,传统做法PersonDao是在应用内部创建和维护
。控制反转就是应用本身不负责倚赖对象的创建和维护
,而是将创建和维护交给外部容器负责,比如spring. 这样控制权就从应用本身转移到了外部容器,控制权的转移就是反转。

依赖注入 Dependency Injection

依赖注入指在运行期
间,由外部容器动态地
将依赖对象注入到组件中。

public class PersonManager {

IPersonDao personDao; // 是用接口定义依赖类

// 本例采用构造器的方式让容器将依赖对象注入到PersonManager类中

// 当然sping还提供了其他的注入方式,比如setter的方式

public PersonManager(IPersonDao personDao) {

this.personDao = personDao;

}

public void save(Person person) {

personDao.save(person);

}

}

Spring好处

降低组件之间耦合度,进而实现软件各层之间的解耦。

容器本身提供了众多服务,如事务管理,消息服务等。

提供了AOP技术,很容易实现如权限拦截、运行期监控等功能。

提供众多辅助类,简化开发,比如JdbcTemplate、HibernateTemplate等

对主流应用框架的支持,比如Hibernate、Struts等。

......

轻量级与重量级

划分一个应用为轻量级或重量级,主要看其使用了多少服务,使用的服务越多,容器要为Java对象做的工作越多,必然会影响部署复杂程度和运行效率。

对于spring容器,它提供了很多服务,但这些服务在默认状态下并不是打开的,需要应用需要某种服务,则需指明要使用该服务,如果使用的服务很少,比如
spring core服务,可认为是轻量级服务。如果应用使用了spring
提供的大部分服务,这时应用就属于重量级。目前EJB容器就因为它默认为应用提供了EJB规范的所有服务,所以它属于重量级。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐