Car.java
package com.gong.spring.beans; public class Car { public Car() { } Car(String name) { this.name = name; } private String name; String getName() { return name; } void setName(String name) { name; } @Override String toString() { return "Car [name=" + name + "]"; } }
Student.java
import java.util.List; Student { String name; private int age; double score; private List<Car> cars; getAge() { age; } void setAge( age) { this.age = getscore() { score; } void setscore( score) { this.score = score; } public List<Car> getCars() { cars; } void setCars(List<Car> cars) { this.cars = cars; } @Override return "Student [name=" + name + ",age=" + age + ",score=" + score + ",cars=" + cars + "]"; } }
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <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="car1" class="com.gong.spring.beans.Car"> <property name="name" value="baoma"></property> </bean> <bean id="car2" class="com.gong.spring.beans.Car"> <property name="name" value="benchi"></property> </bean> <bean id="car3" class="com.gong.spring.beans.Car"> <property name="name" value="binli"></property> </bean> <bean id="student" class="com.gong.spring.beans.Student"> <property name="name" value="tom"></property> <property name="age" value="12"></property> <property name="score" value="98.00"></property> <property name="cars"> <!-- 使用List节点为List集合属性赋值 --> <list> <ref bean="car1"/> <ref bean="car2"/> <ref bean="car3"/> </list> </property> </bean> </beans>
那么,如何对map集合类型进行赋值呢?
修改Student.java
com.gong.spring.beans; java.util.Map; private Map<String,Car>public Map<String,1)">void setCars(Map<String,1)">; } }
主要是将car变为Map<String,Car>类型,然后新加getter和setter方法。
在applicationContext.xml中:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"class="com.gong.spring.beans.Student"> <property name="name" value="tom"></property> <property name="age" value="12"></property> <property name="score" value="98.00"></property> <property name="cars"> <!-- 使用List节点为List集合属性赋值 <list> <ref bean="car1"/> <ref bean="car2"/> <ref bean="car3"/> </list> --> <map> <entry key="A" value-ref="car1"></entry> <entry key="B" value-ref="car2"></entry> <entry key="C" value-ref="car3"></entry> </map> </property> </bean> </beans>
最后在Main.java中调用:
org.springframework.context.ApplicationContext; org.springframework.context.support.ClassPathXmlApplicationContext; Main { static main(String[] args) { //1.创建spring的IOC容器对象 ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); 2.从容器中获取Bean实例 Student student = (Student) ctx.getBean("student"); System.out.println(student.toString()); } }
输出: