依赖:bean对象的创建依赖容器
注入:bean对象所有属性,由容器注入
参考第四点创建对象的方式
构造函数注入分为
无参构造注入
有参构造注入
其实我们在一开始了解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