摘要
Spring 为何如此流行?我们用 Spring 的原因是什么?想想你会发现原来 Spring 解决了一个非常关键的问题:他可以让你把对象之间的依赖关系转而用配置文件来管理,也就是他的依赖注入机制。
依赖注入(dependency injection)的过程指类被实例化后,由容器负责将它的依赖(一起工作的其他类)准备好,提供给被实例化的bean使用。本节学习笔记主要关于两种常用的的依赖注入的方式:基于构造函数参数和基于属性setter方法注入,及让开发更轻松的自动装配技术(Autowired)说明。
1 基于构造函数参数注入
相似的注入方法是用定义静态工厂方法创建对象,将依赖作为工厂方法的参数。
优点是清楚的告诉调用者使用对象时必须注入的依赖,实例化后可得到完全可用的实例。适用于注入必须存在的依赖对象。
// 类定义
public class SimpleMovieLister {
// SimpleMovieLister类依赖了movieFinder对象
private MovieFinder movieFinder;
// 带参数的构造函数,通过它注入movieFinder
public SimpleMovieLister(MovieFinder movieFinder) {
this.movieFinder = movieFinder;
}
// 业务代码使用movieFinder
}
对应的配置代码
<beans>
<bean id="simpleMovieLister " class="x.y.SimpleMovieLister ">
<const