1 setter注入
2 构造器注入
3 bean值引入的几种方式
(1) 简单的值 <value>xxx</value>
(2) 本文件定义的bean <ref local = "xxx"/>
(3) 正常的bean引用 <ref bean="xxx"/> 如果本文件没有定义,其他的配置文件存在定义则引用,如果bean文件和其他文件都有定义,则采用本文件定义的bean,这就是“就近原则”。
(4) 引用父类 <ref parent="xxx">
4 读取Spring配置文件方式
(1) XmlBeanFactory parent = new XmlBeanFactory(new FileSystemResource("c:/my.xml"));
(2) XmlBeanFactory bean = new XmlBeanFactory(new FileSystemResource("c:/bean.xml",parent )); 和上面的引用父类bean有关
5 集合类注入
(1) map注入
<bean id="xxxx" class="xxx">
<property name="myMap">
<map>
<entry key="key1">
<value>value1</value>
</entry>
......
</map>
</property>
</bean>
(2) set注入
<bean id="xxx" class="xxx">
<property name="mySet">
<set>
<value>value1</value>
......
</set>
</property>
</bean>
(3) list注入
<bean id="xxx" class="xxx">
<property name="myList">
<list>
<value>value1</value>
......
</list>
</propery>
</bean>
(4) properties注入
<bean id="xxx" class="xxxx">
<property name="myProperties">
<props>
<prop key="key1">
value1 //只能是String类型
</prop>
<props>
</property>
</bean>
6 非单例bean
<bean id="xxx" class="xxx" singleton="false" >
</bean>
7 手工定义依赖关系
<bean id="a" class="xxx"></bean>
<bean id="b" class="xxx" depends-on="a"></bean>
声明b依赖a,会先实例化a,再实例化b,避免实例化b时,a还没有实例化的情况出现
8 配置自动装配
<bean id="xxx" class="xxx" autowire="byName" />
<bean id="xxx" class="xxx" autowire="byType" />
<bean id="xxx" class="xxx" autowire="constructor" />
<bean id="xxx" class="xxx" autowire="autodetect" />
1 byName: 如果属性名称和<bean>相同
2 byType: 根据类型关联
3 constructor: 与byType类似
4 autodetect: 在byName和byType之间自动选择
自动装配会通过指定的方式初始化bean,但是不赞成使用
9 依赖检查
<bean id="xx" class="xxx" dependency-check = "simple/objects/all">
</bean>
(1) simple 对基本类型的数据进行依赖检验
(2) objects 对自定义的对象类型进行依赖检验
(3) all 对所有的属性进行依赖检验