Spring复杂类型注入
数组、list、map等复杂类型的注入方法
1、当数组中只有一个元素或一个对象的时候,可以使用基本类型的注入方法,当唯一的元素为基本类型的时候使用value,为引用类型的时候使用ref,其他list、map复杂类型同理。
1 <bean name="collection" class="entity.Collection"> 2 <property name="arr" value="jerry"></property> 3 </bean>
实体类为
1 package entity; 2 3 import java.util.Arrays; 4 import java.util.List; 5 import java.util.Map; 6 import java.util.Properties; 7 8 public class Collection { 9 private Object[] arr; 10 private List list; 11 private Map map; 12 private Properties prop; 13 14 public Object[] getArr() { 15 return arr; 16 } 17 18 public void setArr(Object[] arr) { 19 this.arr = arr; 20 } 21 22 public List getList() { 23 return list; 24 } 25 26 public void setList(List list) { 27 this.list = list; 28 } 29 30 public Map getMap() { 31 return map; 32 } 33 34 public void setMap(Map map) { 35 this.map = map; 36 } 37 38 public Properties getProp() { 39 return prop; 40 } 41 42 public void setProp(Properties prop) { 43 this.prop = prop; 44 } 45 46 @Override 47 public String toString() { 48 return "Collection{" + 49 "arr=" + Arrays.toString(arr) + 50 ", list=" + list + 51 ", map=" + map + 52 ", prop=" + prop + 53 '}'; 54 } 55 }
测试类为
1 package injection; 2 3 import entity.Collection; 4 import entity.User; 5 import org.springframework.context.ApplicationContext; 6 import org.springframework.context.support.ClassPathXmlApplicationContext; 7 8 public class DemoTest { 9 10 @org.junit.Test 11 public void fun3() throws Exception { 12 //1、创建容器对象,从类路径下去加载xml的配置文件 13 ApplicationContext ac=new ClassPathXmlApplicationContext("\\injection\\applicationContext.xml"); 14 //想容器要对象 15 Collection c=(Collection) ac.getBean("collection"); 16 System.out.println(c); 17 } 18 }
输出:
当数组中含有多个元素的时候,通过如下方式书写配置文件
1 <bean name="collection" class="entity.Collection"> 2 <property name="arr"> 3 <array> 4 <value>Tom</value> 5 <value>Jerry</value> 6 <ref bean="user"></ref> 7 </array> 8 </property> 9 </bean>
ref标签用来配置对象,一个数组里面可以含有不同类型的元素,测试结果打印如下

List类型注入
<property name="list" value="jack"></property>
1 <property name="list" > 2 <list> 3 <value>1</value> 4 <value>2</value> 5 <ref bean="car"></ref> 6 </list> 7 </property> 8 </bean>
Map类型注入
1 <property name="map" > 2 <map> 3 <entry key="url" value="www.baidu.com"></entry> 4 <entry key="user" value-ref="user"></entry> 5 <entry key-ref="user" value-ref="car"></entry> 6 </map> 7 </property>
properties类型注入
1 <property name="prop"> 2 <props> 3 <prop key="key">value</prop> 4 <prop key="password">123</prop> 5 </props> 6 </property>

浙公网安备 33010602011771号