复杂类型注入
CollectionBean.java
public class CollectionBean {
private Object[] arr;//数组类型注入
private List list;//list/set 类型注入
private Map map;//map类型注入
private Properties prop;//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 getProp() {
return prop;
}
public void setProp(Properties prop) {
this.prop = prop;
}
@Override
public String toString() {
return "CollectionBean [arr=" + Arrays.toString(arr) + ", list=" + list + ", map=" + map + ", prop=" + prop
+ "]";
}
}
car.java
public class Car {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Car [name=" + name + "]";
}
}
array:(数组)
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
<bean name="collectionBean" class="cn.itcast.bean.CollectionBean">
<property name="arr">
<array>
<value>tom1</value>
<value>tom2</value>
<ref bean="car2"/>
</array>
</property>
</bean>
<bean name="car2" class="cn.itcast.bean.Car">
<property name="name" value="奔驰"></property>
</bean>
</beans>
Demo:
@Test
public void fun2() {
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CollectionBean collectionBean = (CollectionBean) ac.getBean("collectionBean");
System.out.println(collectionBean.toString());
}
效果(控制台):
list:(集合)
改applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
<bean name="collectionBean" class="cn.itcast.bean.CollectionBean">
<property name="list">
<list>
<value>jack1</value>
<value>jack2</value>
<ref bean="car2"/>
</list>
</property>
</bean>
<bean name="car2" class="cn.itcast.bean.Car">
<property name="name" value="奔驰"></property>
</bean>
</beans>
效果(控制台):
map:
改applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
<bean name="collectionBean" class="cn.itcast.bean.CollectionBean">
<property name="map">
<map>
<entry key="name" value="tom"></entry>
<entry key="addr" value="beijing"></entry>
<entry key-ref="car1" value-ref="car2"></entry>
</map>
</property>
</bean>
<bean name="car1" class="cn.itcast.bean.Car">
<property name="name" value="奔驰1"></property>
</bean>
<bean name="car2" class="cn.itcast.bean.Car">
<property name="name" value="奔驰2"></property>
</bean>
</beans>
效果(控制台):
Properties
改applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
<bean name="collectionBean" class="cn.itcast.bean.CollectionBean">
<property name="prop">
<props>
<prop key="name">rose</prop>
<prop key="age">21</prop>
</props>
</property>
</bean>
</beans>
效果(控制台):