spring基础再学习-----------Bean的继承概念

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

先给出demo

 

HelloChian.java

package com.yc2;

public class HelloChian {
	 private String massage1;
	 
	 private String massage2;
	 
	 private String massage3;


	public void setMassage1(String massage1) {
		this.massage1 = massage1;
	}

	
	public void setMassage2(String massage2) {
		this.massage2 = massage2;
	}


	public void setMassage3(String massage3) {
		this.massage3 = massage3;
	}
	
	public void getMassage1() {
		System.out.println("chian massage1:"+massage1);
	}
	
	public void getMassage2() {
		System.out.println("chian massage2:"+massage2);
	}
	 
	public void getMassage3() {
		System.out.println("chian massage3:"+massage3);
	}
	 
}

 

HelloSpring2.java

package com.yc2;


public class HelloSpring2{
	 private String massage1;
	 
	 private String massage2;
	 
	 
	public void getMassage1() {
		System.out.println("your massage1:"+massage1);
	}

	public void getMassage2() {
		System.out.println("your massage2:"+massage2);
	}
	
	public void setMassage1(String massage1) {
		this.massage1 = massage1;
	}


	public void setMassage2(String massage2) {
		this.massage2 = massage2;
	}

	 
	
	 
}

 

 

 

Bean2.xml

<?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-3.0.xsd">    
	<!--【scope】 spring bean的“作用域”设置属性 【singleton】 为default的  在loc 容器中就是单例存在的  -->
 
   <!--  HelloSpring2  -->
   <bean id="helloSpring2" class="com.yc2.HelloSpring2" scope="singleton">
       <property name="massage1" value="Hello Spring massage1!"/>
       <property name="massage2" value="Hello Spring massage2!"/>
   </bean>
   
   <bean id="helloChian" class="com.yc2.HelloChian" parent="helloSpring2">
       <property name="massage1" value="Hello Chian massage1!"/>
       <property name="massage3" value="Hello Chian massage3!"/>
   </bean>
   
   
</beans>

 

测试类 MainApp2.java

​
package com.yc2;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class MainApp2 {
	

  public static void main(String[] args) {
	 
	ApplicationContext context = new ClassPathXmlApplicationContext("Bean2.xml");
    HelloChian helloChian   = (HelloChian) context.getBean("helloChian");
    helloChian.getMassage1();
    helloChian.getMassage2();
    helloChian.getMassage3();
}
 
 
}

​

 

运行结果:

 

可以看到 "helloChian" bean  他继承了 "helloSpring2" bean 在不设置 helloChian中的 massage2 时,它的属性自动就继承了 helloSpring2 中的 massage2。 虽然 massage1 也有继承 只是 可以被用来重写!

 

参考链接:https://www.w3cschool.cn/wkspring/tydj1ick.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值