注入元素到数组array标签
注入数组中的元素是简单类型: 在array标签里使用value标签
,在value标签内指定数组元素的值
public class Person {
private String[] favariteFoods;
public void setFavariteFoods(String[] favariteFoods) {
this.favariteFoods = favariteFoods;
}
@Override
public String toString() {
return "Person{" +
"favariteFoods=" + Arrays.toString(favariteFoods) +
'}';
}
}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="person" class="com.powernode.spring6.beans.Person">
<property name="favariteFoods">
<array>
<value>鸡排value>
<value>汉堡value>
<value>鹅肝value>
array>
property>
bean>
beans>
注入数组中的元素是非简单类型: 在array标签里使用ref标签
,使用ref标签的bean属性指定引用的bean的id
public class Goods {
private String name;
public Goods() {
}
public Goods(String name) {
this.name = name;
}
//set和get方法以及toString方法
}
public class Order {
// 一个订单中有多个商品
private Goods[] goods;
public Order() {
}
public Order(Goods[] goods) {
this.goods = goods;
}
//set和get方法以及toString方法
}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="goods1" class="com.powernode.spring6.beans.Goods">
<property name="name" value="西瓜"/>
bean>
<bean id="goods2" class="com.powernode.spring6.beans.Goods">
<property name="name" value="苹果"/>
bean>
<bean id="order" class="com.powernode.spring6.beans.Order">
<property name="goods">
<array>
<ref bean="goods1"/>
<ref bean="goods2"/>
array>
property>
bean>
beans>
注入元素到List集合list标签
注入List集合中的元素是简单类型: 在list标签内使用value标签
,在value标签内指定集合中元素的值
注入List集合中元素是非简单类型: 在list标签内使用ref标签的bean属性
指定引用外部bean的id,也可以利用bean标签自己创建一个内部bean
public class People {
// 一个人有多个名字
private List<String> names;
public void setNames(List<String> names) {
this.names = names;
}
@Override
public String toString() {
return "People{" +
"names=" + names +
'}';
}
}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="peopleBean" class="com.powernode.spring6.beans.People">
<property name="names">
<list>
<value>铁锤value>
<value>张三value>
<value>张三value>
<value>张三value>
<value>狼value>
<bean class="">bean>
<ref bean="" />
list>
property>
bean>
beans>
测试程序
@Test
public void testCollection(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-collection.xml");
People peopleBean = applicationContext.getBean("peopleBean", People.class);
// List集合中的元素有序可重复,People{names=[铁锤,张三,张三,张三,狼]}
System.out.println(peopleBean);
}
注入元素到Set集合set标签
注入Set集合中的元素是简单类型: 在set标签内使用value标签
,在value标签内指定集合元素的值
注入Set集合元素是非简单类型: 在set标签内使用ref标签的bean属性
指定引用外部bean的id ,也可以利用bean标签自己创建一个内部bean
public class People {
// 一个人有多个电话
private Set<String> phones;
public void setPhones(Set<String> phones) {
this.phones = phones;
}
//......
@Override
public String toString() {
return "People{" +
"phones=" + phones +
", names=" + names +
'}';
}
}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="peopleBean" class="com.powernode.spring6.beans.People">
<property name="phones">
<set>
<value>110value>
<value>110value>
<value>120value>
<value>120value>
<value>119value>
<value>119value>
<bean class="">bean>
<ref bean="" />
set>
property>
bean>
beans>
测试程序
@Test
public void testCollection(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-collection.xml");
People peopleBean = applicationContext.getBean("peopleBean", People.class);
// Set集合中的元素无序不可重复,People{phones=[110,120,119]}
System.out.println(peopleBean);
}
注入元素到Map集合map标签
注入元素到Map集合时使用map标签,在map标签内使用entry标签的key,key-ref和value,value-ref属性
指定注入元素key和value的值
key属性
指定元素的key的值key-ref属性
引用外部的bean或者自己在内部创建bean
value属性
指定元素的value的值value-ref属性
或者自己在内部创建bean
public class People {
// 一个人有多个住址
private Map<Integer, String> addrs;
public void setAddrs(Map<Integer, String> addrs) {
this.addrs = addrs;
}
@Override
public String toString() {
return "People{" +
"addrs=" + addrs +
", phones=" + phones +
", names=" + names +
'}';
}
}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="peopleBean" class="com.powernode.spring6.beans.People">
<property name="addrs">
<map>
<entry key="1" value="北京大兴区"/>
<entry key="2" value="上海浦东区"/>
<entry key="3" value="深圳宝安区"/>
<entry key="" value-ref="">entry>
<entry key="key04">
<bean class="">
<property name="" value="">property>
bean>
entry>
map>
property>
bean>
beans>
测试程序
@Test
public void testCollection(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-collection.xml");
People peopleBean = applicationContext.getBean("peopleBean", People.class);
//People{addrs=[1=北京大兴区,2=上海浦东区,3=深圳宝安区]}
System.out.println(peopleBean);
}
注入元素到Properties集合props标签
java.util.Properties继承java.util.Hashtable也是一个Map集合,Properties集合中存储元素的类型的key和value的类型都是String类型(简单类型)
注入元素到Properties集合使用props标签,在props标签内部使用prop标签的key属性指定元素的key的值,在prop标签内部指定元素的value的值
public class People {
private Properties properties;
public void setProperties(Properties properties) {
this.properties = properties;
}
@Override
public String toString() {
return "People{" +
"properties=" + properties +
", addrs=" + addrs +
", phones=" + phones +
", names=" + names +
'}';
}
}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="peopleBean" class="com.powernode.spring6.beans.People">
<property name="properties">
<props>
<prop key="driver">com.mysql.cj.jdbc.Driverprop>
<prop key="url">jdbc:mysql://localhost:3306/springprop>
<prop key="username">rootprop>
<prop key="password">123456prop>
props>
property>
bean>
beans>
测试程序
@Test
public void testCollection(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-collection.xml");
People peopleBean = applicationContext.getBean("peopleBean", People.class);
//People{password=123456,driver=com.mysql.cj.jdbc.Driver,url=jdbc:mysql://localhost:3306/spring,username=root}
System.out.println(peopleBean);
}