重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇文章给大家分享的是有关Spring中bean是如何实现继承的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
创新互联建站-专业网站定制、快速模板网站建设、高性价比沙湾网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式沙湾网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖沙湾地区。费用合理售后完善,10余年实体公司更值得信赖。使用abstract 属性
正如前面所介绍的,通用的配置会被配置成模板,而模板不需要实例化,仅仅作为子bean 定义的模板使用。而ApplicationContext 默认预初始化所有的singleton bean 。使用abstract 属性,可以阻止模板bean 被预初始化。abstract 属性为true 的bean 称为抽象bean ,容器会忽略所有的抽象bean 定义,预初始化时不初始化抽象bean。如果没有定义abstract 属性,该属性默认为false 。如下配置文件定义了一个抽象bean ,该抽象bean 作为模板使用:
public class SteelAxe implements Axe { //count 是个状态值,每次执行chop 方法该值增加1 private int count = 0; public SteelAxe(){ System.out.println("Spring实例化依赖bean: SteelAxe 实例.. ."); } //测试用方法 public String chop(){ return "钢斧砍柴真快" + ++count; } } public class Chinese implements Person //面向Axe 接口编程,而不是具体的实现类 private Axe axe; //默认的构造器 public Chinese(){ System.out.println("Spring实例化主调bean: Chinese 实例... "); } //设值注入所需的setter 方法 public void setAxe( Axe axe){ System.out.pr工ntln (" Spring 执行依赖关系注入..."); this.axe = axe; } //实现Person 接口的useAxe 方法 public void useAxe(){ System.out.println(axe.chop()); } }