zoukankan      html  css  js  c++  java
  • Spring深入浅出(四),Spring Bean定义继承

    Spring Bean 定义的继承与 Java 类的继承无关,但是继承的概念是一样的。你可以定义一个父 bean 的定义作为模板和其他子 bean 就可以从父 bean 中继承所需的配置。

    一、创建HelloWorld类

    package com.clzhang.spring.demo;
    
    public class HelloWorld {
           private String message1;
           private String message2;
           public void setMessage1(String message){
              this.message1  = message;
           }
           public void setMessage2(String message){
              this.message2  = message;
           }
           public void getMessage1(){
              System.out.println("World Message1 : " + message1);
           }
           public void getMessage2(){
              System.out.println("World Message2 : " + message2);
           }
        }

    二、创建HelloIndia类 

    package com.clzhang.spring.demo;
    
    public class HelloIndia {
        private String message1;
        private String message2;
        private String message3;
    
        public void setMessage1(String message) {
            this.message1 = message;
        }
    
        public void setMessage2(String message) {
            this.message2 = message;
        }
    
        public void setMessage3(String message) {
            this.message3 = message;
        }
    
        public void getMessage1() {
            System.out.println("India Message1 : " + message1);
        }
    
        public void getMessage2() {
            System.out.println("India Message2 : " + message2);
        }
    
        public void getMessage3() {
            System.out.println("India Message3 : " + message3);
        }
    }

    三、创建调用程序

    package com.clzhang.spring.demo;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class MainApp {
       public static void main(String[] args) {
          ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
    
          HelloWorld objA = (HelloWorld) context.getBean("helloWorld");
    
          objA.getMessage1();
          objA.getMessage2();
    
          HelloIndia objB = (HelloIndia) context.getBean("helloIndia");
          objB.getMessage1();
          objB.getMessage2();
          objB.getMessage3();
       }
    }

    四、创建配置文件Bean.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns="http://www.springframework.org/schema/beans"
        
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    
       <bean id="helloWorld" class="com.clzhang.spring.demo.HelloWorld">
          <property name="message1" value="Hello World!"/>
          <property name="message2" value="Hello Second World!"/>
       </bean>
    
       <bean id="helloIndia" class="com.clzhang.spring.demo.HelloIndia" parent="helloWorld">
          <property name="message1" value="Hello India!"/>
          <property name="message3" value="Namaste India!"/>
       </bean>    
    </beans>

    五、运行结果

    World Message1 : Hello World!
    World Message2 : Hello Second World!
    India Message1 : Hello India!
    India Message2 : Hello Second World!
    India Message3 : Namaste India!

    在这里你可以观察到,我们创建 “helloIndia” bean 的同时并没有传递 message2,但是由于 Bean 定义的继承,所以它传递了 message2。

    本文参考:

    https://www.w3cschool.cn/wkspring/tydj1ick.html

  • 相关阅读:
    HDU1163 Eddy&#39;s digital Roots【九剩余定理】
    【ThinkingInC++】8、说明,浅谈数据类型的大小
    教你如何使用U盘装系统
    图像不显示该问题的解决方案
    HTTP相关概念
    AndroidUI的组成部分GridView
    uploadify 3.2 后台动态传参数
    Oracle11g创建表空间语句
    Uncaught RangeError: Maximum call stack size exceeded解决思路
    panel,dialog,window组件越界问题汇总
  • 原文地址:https://www.cnblogs.com/nayitian/p/15000414.html
Copyright © 2011-2022 走看看