IOC容器——依赖
控制反转就是由容器来控制bean之间的依赖关系。
?
依赖注入spring容器注入方式主要有两种,一种是构造方法注入,另外一种是setter注入。
?
1.构造方法注入
?
构造方法注入有三种构造方法属性匹配方式,一种是通过类型匹配,一种是通过索引匹配,另外一种是通过名称匹配(只适用于Spring3.0以上)。
?
2.setter注入
?
setter注入需要无参的构造方法或者无参的静态工厂方法,还需要有set方法。
?
3.构造方法注入还是setter注入?
?
一般推荐是使用setter注入,因为当使用构造方法注入的时候,如果构造方法的参数太多,就会造成代码的可读性差,而且要为每个参数赋值。当某些属性可选的时候,选择setter注入是一种很好的选择。
?
depends-on和继承当配置存在重复的时候,就可以定义一个bean为抽象(abstract),另外一个bean继承该bean(parent),来使用重复的配置。
而当一个bean实例化之前,需要在一个或者多个bean实例化之后,就可以用depends-on属性来指定需要预先实例化的那些bean。
?
?Lazy-initialized beansApplicationContext实现的默认行为就是在启动时将所有singleton bean提前进行实例化。有时候这种默认处理可能并不是你想要的。在XML配置文件中,延迟初始化将通过<bean/>元素中的lazy-init属性来进行控制。在容器层次上通过在<beans/>元素上使用default-lazy-init属性来控制延迟初始化也是可能的。
?
自动装配自动装配的方便之处在减少或者消除属性或构造器参数的设置。主要是有byName,byType,constructor,autodetect。
?
?