专栏首页IT技能应用「Spring认证」Spring Bean 定义继承
原创

「Spring认证」Spring Bean 定义继承

一个 bean 定义可以包含很多配置信息,包括构造函数参数、属性值和容器特定的信息,例如初始化方法、静态工厂方法名称等。

子 bean 定义从父定义继承配置数据。子定义可以根据需要覆盖某些值或添加其他值。

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

当您使用基于 XML 的配置元数据时,您通过使用parent属性来指示子 bean 定义,将父 bean 指定为该属性的值。

例子

让我们有一个工作的 Eclipse IDE 并采取以下步骤来创建一个 Spring 应用程序 -

以下是配置文件beans.xml中,我们定义的“HelloWorld”豆它有两个属性MESSAGE1和消息2。下一个“helloIndia” bean 已通过使用parent属性定义为“helloWorld” bean 的子代。孩子继承豆消息2财产是,和覆盖MESSAGE1财产,并介绍了一个更多的财产MESSAGE3。

这是HelloWorld.java文件的内容-

这是HelloIndia.java文件的内容-

以下是MainApp.java文件的内容-

完成源文件和 bean 配置文件的创建后,让我们运行应用程序。如果您的应用程序一切正常,它将打印以下消息 -

如果您在这里观察到,我们在创建“helloIndia”bean 时没有传递 message2,但是由于 Bean 定义继承,它通过了。

Bean 定义模板

您可以创建一个 Bean 定义模板,它可以被其他子 Bean 定义使用而无需付出太多努力。在定义 Bean 定义模板时,您不应指定class属性,而应指定抽象 属性,并应指定值为true的抽象属性,如下面的代码片段所示 -

父 bean 不能单独实例化,因为它是不完整的,并且它也被显式标记为abstract。当定义像这样抽象时,它只能用作纯模板 bean 定义,用作子定义的父定义。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 「Spring认证」Spring Bean 定义教学

    构成应用程序主干并由 Spring IoC 容器管理的对象称为beans。bean 是由 Spring IoC 容器实例化、组装和管理的对象。这些 bean 是...

    IT胶囊
  • Spring Bean的继承

    bean 定义可以包含很多的配置信息,包括构造函数的参数,属性值,容器的具体信息例如初始化方法,静态工厂方法名,等等。

    Jerry Wang
  • Spring 学习笔记(五)—— Bean之间的关系、作用域、自动装配

      Spring提供了配置信息的继承机制,可以通过为<bean>元素指定parent值重用已有的<bean>元素的配置信息。

    Rekent
  • Springboot 原理

    Springboot 帮助快速搭建java 应用程序,包括web和console 应用程序。 默认继承一般需要的依赖。 例如web应用会继承:tomcat-se...

    erili
  • Spring详解(概述、组件详解、加载流程)

    Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您 选择使用哪一个组件,同时为 J2EE ...

    Java小咖秀
  • Spring 源码第四弹!深入理解 BeanDefinition

    在 Spring 容器中,我们广泛使用的是一个一个的 Bean,BeanDefinition 从名字上就可以看出是关于 Bean 的定义。

    江南一点雨
  • 两篇 Spring 总结(一)

    bgZyy
  • spring security自定义指南

    AuthenticationManager接口有个实现ProviderManager相当于一个provider chain,它里头有个List provider...

    codecraft
  • 【小家Spring】Spring注解驱动开发---Spring Ioc容器中Bean的生命周期详解(BeanPostProcessor解析)

    我们可以自定义初始化和销毁方法;容器在bean进行到当前生命周期的时候来调用我们自定义的初始化和销毁方法

    YourBatman
  • Spring的底层源码分析

    Spring 启动时读取应用程序提供的Bean 配置信息,并在Spring 容器中生成一份相应的Bean 配置注册表,然后根据这张注册表实例化Bean,装配好B...

    时间静止不是简史
  • 【Spring源码分析】Bean加载流程概览

    之前写文章都会啰啰嗦嗦一大堆再开始,进入【Spring源码分析】这个板块就直接切入正题了。

    哲洛不闹
  • 「Spring认证」Spring Bean 后处理器

    该BeanPostProcessor的接口定义回调方法,你可以实现提供自己的实例化逻辑,依赖解析逻辑等,还可以实现后的Spring容器完成实例化,配置,并通过在...

    IT胶囊
  • Spring框架源码脉络分析(一):IoC与容器、Bean和BeanDefinition

    IoC:即控制反转机制。在Spring中的实现表现为IoC容器,属于Spring Core模块最核心的部分。

    星如月勿忘初心
  • 《Spring 手撸专栏》第 3 章:初显身手,运用设计模式,实现 Bean 的定义、注册、获取

    讲道理,无论产品功能是否复杂,都有很大一部分程序员会写出一堆 if...else 来完成开发并顺利上线。这主要是原因没法预见当前的需求,发展是否长远、流量是否庞...

    小傅哥
  • 《Spring 手撸专栏》第 3 章:初显身手,运用设计模式,实现 Bean 的定义、注册、获取

    讲道理,无论产品功能是否复杂,都有很大一部分程序员会写出一堆 if...else 来完成开发并顺利上线。这主要是原因没法预见当前的需求,发展是否长远、流量是否庞...

    小傅哥
  • 多图详解Spring框架的设计理念与设计模式

    Spring作为现在最优秀的框架之一,已被广泛的使用,51CTO也曾经针对Spring框架中的JDBC应用做过报道。本文将从另外一个视角试图剖析出Spring...

    MickyInvQ
  • Spring-基于注解的配置[01定义Bean+扫描Bean]

    不管是XML还是注解,他们都是在表达Bean定义的载体,其实质都是为Spring容器提供Bean定义的信息,在表现形式上都是将XML定义的内容通过类注解进行描述...

    小小工匠
  • SpringSecurity-短信验证码接口开发

    有时候我们需要有特殊登录形式,比如说短信验证码登录。他与验证码登录逻辑是不一样的,所以不能使用Spring Security默认提供的那套逻辑;需要自个去写一个...

    好好学java
  • 浅谈对Spring Framework的认识

           Spring Framework,作为一个应用框架,官方的介绍如下:        The Spring Framework provides a...

    欠扁的小篮子

扫码关注云+社区

领取腾讯云代金券