Spring支持两种依赖注入方式,分别是属性注入和构造函数注入、除此之外,spring还支持工厂方法注入方式。
属性注入
属性注入指通过setXxx()方法注入Bean的属性值或依赖对象。由于属性注入方式具有可选择性和灵活性高的优点,因此属性注入是实际应用中最常采用的注入方式。
构造函数注入
构造函数注入是除属性注入外的另一种常用的注入方式,它保证一些必要的属性在Bean实例化时就得到设置,确保Bean在实例化后就可以使用。
工厂方法注入
工厂方法是在应用中被经常使用的设计模式,它也是控制反转和单例设计思想的主要实现方法。由于Spring IoC容器以框架的方式提供工厂方法的功能并以透明的方式开放给开发者,所以很少需要手工编写基于工厂方法的类。正是因为工厂方法已经成为二底层设施的一部分,因此工厂方法对于实际编码的重要性就降低了。不过在一些遗留系统或者第三方类库中,我们还会遇到工厂方法,这时可以使用Spring工厂方法注入的方式进行配置。