4.如何在一个实体类中注入另一个实体类

2018-12-21  本文已影响0人  小竹猫

实体类Person

public class Person {
    private String name;
    private int age;
    //类的关联关系 ...关联,继承
    //Pet pet = new Pet();耦合
    private Pet pet;
    public Person(String name, int age, Pet pet) {
        super();
        this.name = name;
        this.age = age;
        this.pet = pet;
    }
    public Person() {
        super();
        // TODO Auto-generated constructor stub
    }
    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 Pet getPet() {
        return pet;
    }
    public void setPet(Pet pet) {
        this.pet = pet;
    }
    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + ", pet=" + pet + "]";
    }
    
    
}

实体类Pet

public class Pet {
    private String petName;
    private int age;
    public String getPetName() {
        return petName;
    }
    public void setPetName(String petName) {
        this.petName = petName;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Pet [petName=" + petName + ", age=" + age + "]";
    }
    
    
}

可以看到在Person类中,有Pet pet 这样一个属性,那么如何给它注入属性?
可以通过ref标签

ref标签 引用或指定
1.ref="pet1" 第一种写法.
2.<ref bean="pet1"/>

<bean id="p1" class="com.igeek.lesson4.Person">
        <property name="name" value="小明"></property>
        <property name="age" value="20"></property>
        <property name="pet">
            <ref bean="pet1"/>
        </property>
    </bean>
    
    <bean id="pet1" class="com.igeek.lesson4.Pet">
        <property name="petName" value="小老虎"></property>
        <property name="age" value="20"></property>
    </bean>

也可以:

<bean id="p2" class="com.igeek.lesson4.Person">
        <property name="name" value="张全蛋"></property>
        <property name="age" value="38"></property>
        <property name="pet">
            <bean class="com.igeek.lesson4.Pet">
                <property name="petName" value="小海腾"></property>
                <property name="age" value="2"></property>
            </bean>
        </property>
    </bean>

还可以通过一种更为复杂的方式:

<bean id="timo" class="com.igeek.lesson4.Pet"></bean>
    <bean id="p3" class="com.igeek.lesson4.Person">
        <constructor-arg name="name">
            <null/>
        </constructor-arg>
        <constructor-arg name="age" value="18"></constructor-arg>
        <constructor-arg name="pet" ref="timo"></constructor-arg>
        <!-- 为级联属性赋值 -->
        <property name="pet.petName" value="提莫"></property>
        <property name="pet.age" value="20"></property>
    </bean>
上一篇下一篇

猜你喜欢

热点阅读