Spring-5:Bean之间的继承与依赖
来源:互联网 发布:淘宝网摩托车专区 编辑:程序博客网 时间:2024/05/13 04:02
在Spring框架中Bean之间的关系分为两种:继承和依赖。
继承
1、继承配置
Spring 允许继承 bean 的配置, 被继承的 bean 称为父 bean. 继承这个父 Bean 的 Bean 称为子 Bean。子 Bean 从父 Bean 中继承配置, 包括 Bean 的属性配置。子 Bean 也可以覆盖从父 Bean 继承过来的配置。
<!-- 用parent属性指定继承,子bean可从父bean继承所有配置,也可以覆盖部分配置 --><bean id="address" class="com.atguigu.spring.beans.relation.Address" p:city="NanJing" p:street="NanRuiLu"></bean><bean id="address2" class="com.atguigu.spring.beans.relation.Address" p:street="ZhongShanLu" parent="address"></bean>
这时,address2将继承address并获得address的属性设置,并覆盖了street属性。
这里讲的继承关系和面向对象编程的继承有很大不同。这里的继承的是继承属性配置,并不要求父Bean和子Bean对应的类相同或者有实际上的继承关系,只要拥有一致的属性名和类型即可。不过一般还是不要过于随意的去继承。
2、配置模板
父 Bean 可以作为配置模板, 也可以作为 Bean 实例. 若只想把父 Bean 作为模板, 可以设置 <bean> 的abstract 属性为 true, 这样 Spring 将不会实例化这个 Bean
并不是 <bean> 元素里的所有属性都会被继承. 比如: autowire, abstract 等.
<!-- 用abstract属性设置抽象bean,这种bean和抽象类一样,不能被实例化、只能被继承 --><bean id="car" class="com.atguigu.spring.beans.relation.Car" p:brand="Baoma" p:price="500000" abstract="true"></bean><bean id="car2" class="com.atguigu.spring.beans.relation.Car" parent="car" p:price="300000"></bean>
abstract属性为true的bean不能被实例化,如果执行以下语句,会报错
Car car = (Car) ctx.getBean("car");3、也可以忽略父Bean 的class 属性,让子Bean指定自己的类,而共享相同的属性配置.但此时abstract 必须设为true。
依赖
Spring 允许用户通过 depends-on 属性设定 Bean 前置依赖的Bean,前置依赖的 Bean 会在本 Bean 实例化之前创建好
如果前置依赖于多个 Bean,则可以通过逗号,空格或的方式配置 Bean 的名称
如果前置依赖于多个 Bean,则可以通过逗号,空格或的方式配置 Bean 的名称
<!-- 用depends-on指定依赖 --><bean id="person" class="com.atguigu.spring.beans.relation.Person" p:name="mike" depends-on="car2,address"></bean>在bean person被实例化之前,会检测car2和address是否已经实例化,如果没有,则会首先实例化car2和address。
在目前所学的范围内,xml文件中所有的非模板bean在加载xml文件的时候都会被实例化,产生一个对象,这也是bean的默认加载方式,后面的内容中会提到bean也可以被设置为加载xml文件时不自动实例化。这是依赖的作用就体现出来了。
0 0
- Spring-5:Bean之间的继承与依赖
- spring bean之间的关系:继承;依赖
- spring- bean之间的关系 继承 依赖
- 五bean之间的继承与依赖
- Spring - bean 继承与依赖
- Spring 框架Bean之间的关系(继承、依赖)
- Spring-4 bean之间的关系----继承和依赖
- Spring配置--Bean之间的关系(继承和依赖)
- 10009---bean 之间的关系:继承;依赖
- bean 之间的关系:继承;依赖
- spring学习笔记(5)——bean的继承与依赖关系
- spring-bean的依赖和继承
- 【跟我学spring 4.0 】之第五节-配置bean之间的关系:继承、依赖
- spring学习小结——bean之间的关系 继承 依赖
- spring学习小结3——bean之间的继承,依赖关系
- Spring 中 bean 之间的关系:parent(继承) 和 depends-on (依赖)作用是什么?
- Spring4深入理解IOC&DI02----Bean配置--自动装配、bean之间的继承与依赖、使用外部属性文件
- (三)配置bean之间的关系:继承、依赖
- 从源代码的角度分析--在BaseAdapter调用notifyDataSetChanged()之后发生了什么
- NYOJ2 括号配对
- 为什么CPU到蓝牙的音频传输都是用的PCM接口呢
- sql语句判断两个时间段是否有交集
- 一款新闻类iOS APP的诞生过程(初学)
- Spring-5:Bean之间的继承与依赖
- study plane
- Ext.data.XmlReader解析
- [BZOJ4554][JZOJ4612] 【TJOI&HEOI2016】D2T1 游戏
- windows远程连接失败
- asp.net mvc 分页 CPager(秒杀杨涛MvcPager)之封装之前
- codeforces C. NP-Hard Problem 二分图的判定
- uLua+SimpleFramework常见问题的解答及学习笔记
- C语言文件操作详解