spring 框架说明文档学习记录(3.5)
来源:互联网 发布:mysql结构化查询语言 编辑:程序博客网 时间:2024/05/16 19:22
Bean继承
一个bean定义会包含很多配置信息,构造函数、属性值、容器指定信息如初始化方法、静态工厂方法等。一个子bean定义可以从父bean继承配置数据,并且可以覆盖或添加某些值。使用继承能够节省大量工作量。
子bean可以通过ChildBeanDefinition类实现,但一般不使用,而是使用xml配置
<bean id="inheritedTestBean" abstract="true" class="org.springframework.beans.TestBean"> <property name="name" value="parent"/> <property name="age" value="1"/></bean><bean id="inheritsWithDifferentClass" class="org.springframework.beans.DerivedTestBean" parent="inheritedTestBean" init-method="initialize"> <property name="name" value="override"/> <!-- the age property value of 1 will be inherited from parent --></bean>如果未指定,子bean使用父bean的class类,也可以覆盖它。子bean必须兼容父bean,即它必须能够接收父bean的属性值。
子bean从父bean继承scope、constructor参数值、property值和方法,同时可以选择添加新值。任何scope、初始化方法、析构方法、静态工厂方法等设置都可以覆盖父bean的设置。
下列配置会一直从子bean获取:depends on、autowire mode、dependency check、singleton、lazy init。
如果父bean定义没有指定类,必须显式的指定为abstract
<bean id="inheritedTestBeanWithoutClass" abstract="true"> <property name="name" value="parent"/> <property name="age" value="1"/></bean><bean id="inheritsWithClass" class="org.springframework.beans.DerivedTestBean" parent="inheritedTestBeanWithoutClass" init-method="initialize"> <property name="name" value="override"/> <!-- age will inherit the value of 1 from the parent bean definition--></bean>该父bean因为没有类且标注为抽象,不能被实例化。同样的,容器的预初始化方法preInstantiateSingletons()忽略抽象bean的定义。
阅读全文
0 0
- spring 框架说明文档学习记录(3.5)
- spring 框架说明文档学习记录(1)
- spring 框架说明文档学习记录(2)
- spring 框架说明文档学习记录(3)
- spring 框架说明文档学习记录(3.1)
- spring 框架说明文档学习记录(3.2)
- spring 框架说明文档学习记录(3.3)
- spring 框架说明文档学习记录(3.4)
- spring 框架说明文档学习记录(3.6)
- spring 框架说明文档学习记录(3.7)
- Spring框架学习记录
- Spring-Validator 说明文档
- Spring-Validator 说明文档
- Spring说明文档翻译1——第一部分,spring框架预览
- spring框架说明
- Spring Framework 5.0.0.M3中文文档 翻译记录 Part I. Spring框架概览1-2.2
- Spring的定时器说明文档
- Spring Framework 中文说明文档
- RSS Feeds with Spring Boot
- Android Preference使用
- 二分+堆——Codeforces812C Sagheer and Nubian Market
- 芯片相关工艺01——芯片反向工程
- spfa||贪心——洛谷P1250 种树
- spring 框架说明文档学习记录(3.5)
- rex run
- Oracle中保留两位小数
- #pragma warning(disable:4996)
- redis使用之操作(针对开发)
- STM32CubeMX_SPI驱动数码管
- C#中使用checked和unchecked整数运算
- Eclipse开发C/C++ 安装配置图文详解 [记录]
- Rails中的image_tag 辅助方法