<?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, class:bean 的全类名,通过反射方法在ioc 容器中创建bean,所以要求必须有无参数的构造器 id: 标识容器中的 --> 普通方法注入 <bean id="car2" class="Car"> <property name="brand" value="baoMa"></property> <property name="price" value="35"></property> </bean> <bean id="person" class="Person"> <property name="name" value="zhangSan"></property> <property name="age" value="24"></property> <property name="car" ref="car2"></property> //引用外部car2 bean <property name="car" > <bean class="Car"> 引用内部 bean <property name="brand" value="Ford"></property> <property name="price" value="20"></property> </bean> </property> </bean> </beans>
测试赋值 null 值 使用有参构造器方法注入参数,
<bean id="car2" class="Car"> <property name="brand" value="baoMa"></property> <property name="price" value="35"></property> </bean> <bean id="person" class="Person"> <!-- <property name="name" value="zhangSan"></property>--> <!-- <property name="age" value="24"></property>--> <constructor-arg value="zhangsan"></constructor-arg> <constructor-arg value="25"></constructor-arg> <!--<property name="car" > <bean class="Car"> <property name="brand" value="Ford"></property> <property name="price" value="20"></property> </bean> </property>--> <constructor-arg ><null></null></constructor-arg> </bean>
级联注册属性时,子类得有,get方法,,父类,得有,有参和无参构造函数!
Person 类
public class Person {
private String name;
private int age;
private Car car;
public void setName(String name){
this.name=name;
}
public void setCar(Car car){
this.car=car;
}
public Car getCar() {
return car;
}
public void setAge(int age) {
this.age = age;
}
public String toString() {
return "person:[name="+name+" age="+age+" car="+car+"]";
}
public Person(String name,int age,Car car){
super();
this.name=name;
this.age=age;
this.car=car;
}
public Person(){}
public void hello(){
System.out.println(name+" "+age);
car.hello();
}
}
Car 类
public class Car {
private String brand;
private int price;
public void setBrand(String brand) {
this.brand = brand;
}
public void setPrice(int price) {
this.price = price;
}
public void hello(){
System.out.println(brand+" | "+price);
}
public String toString() {
return "person:[brand="+brand+" price="+price+"]";
}
public Car(String brand,int price){
super();
this.brand = brand;
this.price = price;
}
public Car(){}
}
配制文件
<bean id="car2" class="Car">
<property name="brand" value="baoMa"></property>
<property name="price" value="35"></property>
</bean>
<bean id="person" class="Person">
<!-- <property name="name" value="zhangSan"></property>-->
<!-- <property name="age" value="24"></property>-->
<constructor-arg value="zhangsan"></constructor-arg>
<constructor-arg value="25"></constructor-arg>
<!--<property name="car" >
<bean class="Car">
<property name="brand" value="Ford"></property>
<property name="price" value="20"></property>
</bean>
</property>-->
<!-- <constructor-arg ><null></null></constructor-arg>-->
<constructor-arg ref="car2"></constructor-arg>
<property name="car.price" value="50000"></property>
</bean>
<!--配置集合属性-->
<bean id="car3" class="com.lishimin.collection.Car">
<property name="brand" value="aodi"></property>
<property name="price" value="45"></property>
</bean>
<bean id="car1" class="com.lishimin.collection.Car">
<property name="brand" value="baoMa"></property>
<property name="price" value="35"></property>
</bean>
<bean id="person3" class="com.lishimin.collection.Person">
<property name="name" value="xiaoming"></property>
<property name="age" value="25"></property>
<!-- 使用List节点为List类型的属性赋值-->
<property name="cars">
<list>
<ref bean="car1"></ref>
<ref bean="car3"></ref>
</list>
</property>
</bean>
集合属性的实体类
package com.lishimin.collection;
import java.util.List;
public class Person {
private String name;
private int age;
private List<Car> cars; //list集合 类型为Car
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public List<Car> getCars() {
return cars;
}
public void setCars(List<Car> cars) {
this.cars = cars;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", cars=" + cars +
'}';
}
public Person(String name, int age, List<Car> cars) {
this.name = name;
this.age = age;
this.cars = cars;
}
public Person(){}
}
<!--配置集合属性-->
<bean id="car3" class="com.lishimin.collection.Car">
<property name="brand" value="aodi"></property>
<property name="price" value="45"></property>
</bean>
<bean id="car1" class="com.lishimin.collection.Car">
<property name="brand" value="baoMa"></property>
<property name="price" value="35"></property>
</bean>
<bean id="person3" class="com.lishimin.collection.Person">
<property name="name" value="xiaoming"></property>
<property name="age" value="25"></property>
<!-- 使用List节点为List类型的属性赋值-->
<property name="cars">
<list>
<ref bean="car1"></ref>
<ref bean="car3"></ref>
<bean class="com.lishimin.collection.Car">
<constructor-arg value="Ford"></constructor-arg>
<constructor-arg value="58"></constructor-arg>
</bean> //内部bean
</list>
</property>
</bean>