spring 依赖对象的注入方式(3种) 和 公共属性的设置abstract="true" parent

来源:互联网 发布:三国杀陈琳淘宝 编辑:程序博客网 时间:2024/04/30 20:39
一、依赖对象的注入方式,可以采用:
1)ref属性

<property name="bean3" ref="bean3" />


2) <ref>标签

<property name="bean2">
         <ref bean="bean2" />
    </property>


3) 内部<bean>来定义

<property name="bean4">
        <bean class="com.zd.bean.Bean4">
            <property name="age" value="16" />
        </bean>
    </property>

=============================================

二、公共属性的设置

1)通过<bean>标签定义公共的属性,指定abstract=true

<!-- 抽象bean,作为父类 ,子类bean parent 它-->
<bean id="beanAbstract" abstract="true">
    <property name="id" value="10"/>
    <property name="name" value="Jack"/>
</bean>

2)具有相同属性的类在<bean>标签中指定其parent属性

<bean id="bean2" class="com.zd.bean.Bean2" parent="beanAbstract">

     <!--可重写父id的属性

    <property name="name" value="Mike"/>

--->

    <property name="password" value="123"></property>
</bean>

<bean id="bean3" class="com.zd.bean.Bean3" parent="beanAbstract" />

==============================================================

三、源代码及测试用例:

1)类

public class Bean1 {

private Bean2 bean2;
private Bean3 bean3;
private Bean4 bean4;

public class Bean2 {

private int id;
private String name;
private String password;

public class Bean3 {
private int id;
private String name;

public class Bean4 {

private int age;

2) applicationContext.xml

<!-- 抽象bean,作为父类 ,子类bean parent 它-->
<bean id="beanAbstract" abstract="true">
    <property name="id" value="10"/>
    <property name="name" value="Jack"/>
</bean>

<bean id="bean2" class="com.zd.bean.Bean2" parent="beanAbstract">
    <property name="password" value="123"></property>
</bean>

<bean id="bean3" class="com.zd.bean.Bean3" parent="beanAbstract" />

<bean id="bean4" class="com.zd.bean.Bean4" >
    <property name="age">
        <value>18</value>
    </property>
</bean>

<bean id="bean1" class="com.zd.bean.Bean1" >
    <property name="bean2">
         <ref bean="bean2" />
    </property>
    <property name="bean3" ref="bean3" />
    <property name="bean4">
        <bean class="com.zd.bean.Bean4">
            <property name="age" value="16" />
        </bean>
    </property>

</bean>

3)测试用例:

public void testBean1(){
   Bean1 bean1 = (Bean1) factory.getBean("bean1");
   System.out.println(bean1.getBean2().getId());
   System.out.println(bean1.getBean2().getName());
   System.out.println(bean1.getBean2().getPassword());
   System.out.println(bean1.getBean3().getId());
   System.out.println(bean1.getBean3().getName());
   System.out.println(bean1.getBean4().getAge());
  
  
  
}