1、注入方式
(1)set方法注入
<bean name="user" class="club.ityuchao.domain.User">
<!-- 值类型注入 -->
<property name="name" value="tom"></property>
<property name="age" value="21"></property>
<!-- 引用类型 -->
<property name="car" ref="car"></property>
</bean>
<bean name="car" class="club.ityuchao.domain.Car">
<property name="name" value="兰博基尼"></property>
<property name="color" value="yellow"></property>
</bean>
(2)构造函数注入
通过以下三个参数可以确认任何构造函数
name:属性名
index:属性在构造方法参数中第几个
type:该参数类型
<bean name="user2" class="club.ityuchao.domain.User">
<constructor-arg name="name" index="0" type="java.lang.Integer" value="101"></constructor-arg>
<constructor-arg name="age" value="25"></constructor-arg>
</bean>
(3)p名称空间注入(了解)
其实还是走的set方法
A)导入p名称空间
xmlns:p="http://www.springframework.org/schema/p"
B)使用p:属性完成注入
<bean name="user3" class="club.ityuchao.domain.User" p:name="lisi" p:age="55" p:car-ref="car">
</bean>
(4)spel注入(了解)
spel:Spring expression Language
<bean name="user4" class="club.ityuchao.domain.User">
<property name="name" value="#{user.name}"></property>
<property name="age" value="#{user2.age}"></property>
<property name="car" ref="car"></property>
</bean>
2、复杂注入
以这个javaBean为例:
public class CollectionBean {
private Object[] arr;
private List list;
private Map map;
private Properties properties;
@Override
public String toString() {
return "CollectionBean [arr=" + Arrays.toString(arr) + ", list=" + list + ", map=" + map + ", properties="
+ properties + "]";
}
public Object[] getArr() {
return arr;
}
public void setArr(Object[] arr) {
this.arr = arr;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
public Properties getProperties() {
return properties;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
}
(1)数组
如果数组的值只有一个可以直接使用value属性或ref:
<bean name="collection" class="club.ityuchao.domain.CollectionBean">
<property name="arr" value="rose"></property>
</bean>
多个:
<property name="arr">
<array>
<value>tom</value>
<value>jerry</value>
<ref bean="user"/>
</array>
</property>
(2)List
如果list/set的值只有一个可以直接使用value属性或ref:
<bean name="collection" class="club.ityuchao.domain.CollectionBean">
<property name="list" ref="user"></property>
</bean>
多个:
<property name="list">
<list>
<value>lisi</value>
<value>rose</value>
<ref bean="user"/>
</list>
</property>
(3)Map
<property name="map">
<map>
<entry key="url" value="jdbc:mysql///ally"></entry>
<entry key="name" value="root"></entry>
<entry key-ref="user" value-ref="user2"></entry>
</map>
</property>
(4)Properties
<property name="properties">
<props>
<prop key="username">root</prop>
<prop key="password">123</prop>
<prop key="driver">com.jdbc.mysql.Driver</prop>
</props>
</property>