• Spring笔记(四)--公共属性的配置


    一、公共属性的注入配置:

    四个bean:

     1 package com.dwr.spring.bean;
     2 
     3 public class Bean1 {
     4     private Bean2 bean2;
     5     private Bean3 bean3;
     6     private Bean4 bean4;
     7 
     8     public Bean2 getBean2() {
     9         return bean2;
    10     }
    11 
    12     public void setBean2(Bean2 bean2) {
    13         this.bean2 = bean2;
    14     }
    15 
    16     public Bean3 getBean3() {
    17         return bean3;
    18     }
    19 
    20     public void setBean3(Bean3 bean3) {
    21         this.bean3 = bean3;
    22     }
    23 
    24     public Bean4 getBean4() {
    25         return bean4;
    26     }
    27 
    28     public void setBean4(Bean4 bean4) {
    29         this.bean4 = bean4;
    30     }
    31 }
     1 package com.dwr.spring.bean;
     2 
     3 public class Bean2 {
     4     private int id;
     5     private String name;
     6     private String password;
     7 
     8     public int getId() {
     9         return id;
    10     }
    11 
    12     public void setId(int id) {
    13         this.id = id;
    14     }
    15 
    16     public String getName() {
    17         return name;
    18     }
    19 
    20     public void setName(String name) {
    21         this.name = name;
    22     }
    23 
    24     public String getPassword() {
    25         return password;
    26     }
    27 
    28     public void setPassword(String password) {
    29         this.password = password;
    30     }
    31 }
     1 package com.dwr.spring.bean;
     2 
     3 public class Bean3 {
     4     private int id;
     5     private String name;
     6 
     7     public int getId() {
     8         return id;
     9     }
    10 
    11     public void setId(int id) {
    12         this.id = id;
    13     }
    14 
    15     public String getName() {
    16         return name;
    17     }
    18 
    19     public void setName(String name) {
    20         this.name = name;
    21     }
    22 }
     1 package com.dwr.spring.bean;
     2 
     3 public class Bean4 {
     4     private int age;
     5 
     6     public int getAge() {
     7         return age;
     8     }
     9 
    10     public void setAge(int age) {
    11         this.age = age;
    12     }
    13 }

    spring.xml

     1   <bean id="bean1" class="com.dwr.spring.bean.Bean1">
     2         <property name="bean2" ref="bean2"/>
     3         <property name="bean3" ref="bean3"/>
     4         <property name="bean4" ref="bean4"/>
     5     </bean>
     6     <bean id="bean2" class="com.dwr.spring.bean.Bean2">
     7         <property name="id" value="1"/>
     8         <property name="name" value="Jack"/>
     9         <property name="password" value="123456"/>
    10     </bean>
    11     <bean id="bean3" class="com.dwr.spring.bean.Bean3">
    12         <property name="id" value="1"/>
    13         <property name="name" value="Jack"/>
    14     </bean>
    15     <bean id="bean4" class="com.dwr.spring.bean.Bean4">
    16         <property name="age" value="20"/>
    17     </bean>

    测试:

     1 @org.junit.Test
     2     public void testMethod(){
     3         ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
     4         Bean1 bean1 = (Bean1) context.getBean("bean1");
     5 
     6         System.out.println("bean1.getBean2().getId():" + bean1.getBean2().getId());
     7         System.out.println("bean1.getBean2().getName():" + bean1.getBean2().getName());
     8         System.out.println("bean1.getBean2().getPassword():" + bean1.getBean2().getPassword());
     9         System.out.println("bean1.getBean3().getId():" + bean1.getBean3().getId());
    10         System.out.println("bean1.getBean3().getName():" + bean1.getBean3().getName());
    11         System.out.println("bean1.getBean4().getAge():" + bean1.getBean4().getAge());
    12 
    13     }

    测试结果:

    1 bean1.getBean2().getId():1
    2 bean1.getBean2().getName():Jack
    3 bean1.getBean2().getPassword():123456
    4 bean1.getBean3().getId():1
    5 bean1.getBean3().getName():Jack
    6 bean1.getBean4().getAge():20

    bean2和bean3的部分属性配置信息相同,因此可以将公共部分提出来。xml文件配置如下:

     1   <bean id="beanAbstract" abstract="true">
     2         <property name="id" value="1"/>
     3         <property name="name" value="Jack"/>
     4     </bean>
     5     <bean id="bean1" class="com.dwr.spring.bean.Bean1">
     6         <property name="bean2" ref="bean2"/>
     7         <property name="bean3" ref="bean3"/>
     8         <property name="bean4" ref="bean4"/>
     9     </bean>
    10     <bean id="bean2" class="com.dwr.spring.bean.Bean2" parent="beanAbstract">
    11         <property name="password" value="123456"/>
    12     </bean>
    13     <bean id="bean3" class="com.dwr.spring.bean.Bean3" parent="beanAbstract"></bean>
    14     <bean id="bean4" class="com.dwr.spring.bean.Bean4">
    15         <property name="age" value="20"/>
    16     </bean>

    beanAbstract是抽象出来的,令abstract="true"后,可以不指定class属性。

    测试结果与上面相同。

    若bean2的name不同,则可以在配置bean2是声明(配置property)。

  • 相关阅读:
    git 的常用命令(未完待补充)
    Mysql占用内存过高参数优化
    mysql安全基线设置
    redis安全基线设置
    centos7安全基线设置
    检查shell脚本
    redis安装和配置
    TIME_WAIT状态全是3306解决办法
    PHP message: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted 错误
    tcp的三次握手和四次挥手(二)
  • 原文地址:https://www.cnblogs.com/zhongzhongdebokeyuan/p/5821360.html
Copyright © 2020-2023  润新知