实体类
package domain;
import java.util.Arrays;
public class TestArray {
private String name;
private Computer computer;
private String[] array;
public TestArray() {
}
public TestArray(String name, Computer computer, String[] array) {
this.name = name;
this.computer = computer;
this.array = array;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Computer getComputer() {
return computer;
}
public void setComputer(Computer computer) {
this.computer = computer;
}
public String[] getArray() {
return array;
}
public void setArray(String[] array) {
this.array = array;
}
@Override
public String toString() {
return "TestArray{" +
"name='" + name + '\'' +
", computer=" + computer +
", array=" + Arrays.toString(array) +
'}';
}
}
配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd">
<!--数组属性的注入-->
<bean id="testArray" class="domain.TestArray">
<constructor-arg name="name" value="pgg"></constructor-arg>
<constructor-arg name="computer">
<bean name="computer" class="domain.Computer">
<constructor-arg name="cname" value="111"></constructor-arg>
<constructor-arg name="price" value="111"></constructor-arg>
</bean>
</constructor-arg>
<constructor-arg name="array">
<array value-type="java.lang.String" ><!--value-type为数组的类型-->
<value type="java.lang.String">aaa</value>
<value>bbb</value>
<value>ccc</value><!--数组的值 type为值的类型-->
</array>
</constructor-arg>
</bean>
<!--List集合属性的注入-->
<bean name="listTest" class="domain.ListTest">
<property name="name" value="pggg"></property>
<property name="age" value="18"></property>
<property name="list">
<list value-type="java.lang.String">
<value>fff</value>
</list>
</property>
</bean>
<!--map集合属性的注入-->
<bean name="mapTest" class="domain.MapTest">
<property name="name" value="pgg"></property>
<property name="maplist">
<map key-type="java.lang.Integer" value-type="java.lang.String">
<entry key="1" value="aaa"></entry>
</map>
</property>
</bean>
<!--读取properties-->
<bean name="properties" class="domain.PropertiesTest">
<constructor-arg name="properties">
<props>
<prop key="1">888</prop>
<prop key="2">4444</prop>
<prop key="3">7777</prop>
</props>
</constructor-arg>
</bean>
<!--命名空间问题,可以用c:属性名=”值“ 如果是基本类型。用c:属性名=”值“ 如果是对象类型,则用c:属性名-ref=”属性bean对象的name“-->
<bean name="room" class="domain.Room" c:name="pgg" c:computer-ref="computer"></bean>
<util:map id="map">
<entry key="pgg">
<bean class="domain.Computer"></bean>
</entry>
</util:map>
<bean id="room" class="domain.Room" p:name="pgg" p:map-ref="map" ></bean>
</beans>
Set集合的注入和list一样,只是把list改为set
命名空间问题
可以用c:属性名=”值“ 如果是基本类型。用c:属性名=”值“ 如果是对象类型,则用c:属性名-ref=”属性bean对象的name“
<!--命名空间问题,可以用c:属性名=”值“ 如果是基本类型。用c:属性名=”值“ 如果是对象类型,则用c:属性名-ref=”属性bean对象的name“-->
<bean name="room" class="domain.Room" c:name="pgg" c:computer-ref="computer"></bean>
<util:map id="map">
<entry key="pgg">
<bean class="domain.Computer"></bean>
</entry>
</util:map>
<bean id="room" class="domain.Room" p:name="pgg" p:map-ref="map" >