一.通过属性的setter方法注入
两种依赖注入的区别:
在beans.xml文件中的配置,
1.
<property name="ooo"></property>--------------->用于为属性注入值
<property ref="xxx"></property>------------------->根据xxx在spring容器中得到bean,根据反射技术将bean附给了ooo属性
可以给很多bean注入值
2.
使用内部bean实现依赖注入
<bean>
<property name="personDao">
<bean class=""></bean>
</property>
</bean>
只能给这个bean注入值
怎么给基本类型的属性注入值 ?
<bean>
<property name="name" value="xxx"/>--------------------->将xxx注入给name属性
</bean>
怎么给set集合类型注入值?
<bean .......>
<property name="sets">
<set>
<value>first</value>
<value>second</value>
<value>third</value>
</set>
</property>
</bean>
怎么给list集合类型注入值?
<bean .......>
<property name="lists">
<list>
<value>first</value>
<value>second</value>
<value>third</value>
</set>
</property>
</bean>
怎么给Properties集合类型注入值?
<bean .......>
<property name="properties">
<props>
<prop key="key1">value1</prop>
<prop key="key2">value2</prop>
</props>
</property>
</bean>
怎么给HashMap集合类型注入值?
<bean .......>
<property name="maps">
<map>
<entry key="key1" value="value1"></entry>
<entry key="key2" value="value2"></entry>
</map>
</property>
</bean>
二.通过构造器来注入
有两个属性:PersonDao 和name两个属性
<bean ...>
<constructor-arg index="0" type="com.cn.dao.PersonDao" ref="personDao"/>
<constructor-arg index="1" value="spring is coming"/>
</bean>
三.使用Field注入(用于注解方式)
加入两个命名空间:
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
<context:annotation-config/>------------>将注解写到Spring容器
导入jar文件
lib\j2ee\common-annotations.jar
在java代码中使用@Autowired或者@Resource注解方式进行装配;两者的区别:@Autowired 默认按类型装配 @Resource默认按照名称装配,找不到与名称匹配的bean才会按照类型装配。