6.依赖注入(Dependency Injection)
6.依赖注入(Dependency Injection)
依赖:bean对象的创建依赖容器
注入:bean对象所有属性,由容器注入
6.1 构造函数注入
-
参考第四点创建对象的方式
-
构造函数注入分为
-
无参构造注入
-
有参构造注入
-
6.2 基于Setter的依赖注入(重点)
其实我们在一开始了解IOC思想的时候就是用Setter注入的但是那是最基本的下面开始分析复杂的
基于spring的setter注入官方解释
-
Spring团队通常提倡使用构造函数注入,因为它可以让您将应用程序组件实现为不可变对象,并确保不存在必需的依赖项
null。此外,注入构造函数的组件始终以完全初始化的状态返回给客户端(调用)代码。附带说明一下,大量的构造函数自变量是一种不好的代码味,这表明该类可能承担了太多的职责,应进行重构以更好地解决关注点分离问题。 -
Setter注入主要应仅用于可以在类中分配合理的默认值的可选依赖项。否则,必须在代码使用依赖项的任何地方执行非空检查。
-
setter注入的一个好处是,setter方法可使该类的对象在以后重新配置或重新注入。
第一步:编写实体类(最好的各个注入类型都包含)(省略getset和toString)
public class Student implements Serializable {
private String name;
private Integer age;
private Teacher teacher;
private String[] books;
private List<String> hobbies;
private Map<String,Object> score;
private Set<String> games;
private Properties subject;
}
public class Teacher implements Serializable {
private String name;
private Integer age;
}
第二步:编写核心配置文件applicationContext.xml
