博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bean之间的关系:继承、依赖
阅读量:6225 次
发布时间:2019-06-21

本文共 1271 字,大约阅读时间需要 4 分钟。

 继承

这里说的继承和java的继承是不一样的,不是父类子类。但思想很相似,是父bean和子bean

1、父bean是一个实例时。它本身是一个完整的bean

2、父bean是模板,抽象bean,不能被实例化,只是来被继承。

 

当遇到一个类要实例化出很多相似的bean对象时,如下,看起来是不是很不简洁

1     
3

方法① 两个bean除了p:street不一样,其他都一样。可以把一个作为父bean,其它的继承这个bean

1      
3
4 // address2等价于:5 //

这里,第二个就继承了第一个bean,用parent属性,只写自己独有的属性或要覆盖的属性即可。

方法②把相同属性提取出来,做一个抽象bean,专门用来继承

1 
3

这样,address2也继承了address1。address1设置了abstract="true",就不能实例化,否则抛异常。

也可以写成这样:

1  
2

和上面的不同就是把class属性拿出去了。当很多不是同一个类的bean要继承父bean时,就要这样,在子bean写自己所在的class。

这样写还有一点是,这个父bean一定不能实例化,因为它没有class属性,实例化会跑异常。那就一定要写abstract属性,让spring不实例化它。

 

     依赖---depends-on

用Person类的例子

1 public class Person { 2     private String name; 3     private Car car; 4      5     public String getName() { 6         return name; 7     } 8     public void setName(String name) { 9         this.name = name;10     }11     public Car getCar() {12         return car;13     }14     public void setCar(Car car) {15         this.car = car;16     }17     @Override18     public String toString() {19         return "Person [name=" + name + ", car=" + car + "]";20     }21 }

 

 有一个属性Car没有配置,那实例化后,它就是null。

1  

 

 有时,我们需要让某个属性必须存在,就像必填项一样。 用depends-on 依赖

1   

 

这样表示,实例化person一定要依赖car,没有配置car会抛异常

1  
2

 

这样,依赖的car存在,就可以正常实例化了

转载地址:http://cwyna.baihongyu.com/

你可能感兴趣的文章
Python 对图片进行人脸识别
查看>>
Go语言简明教程
查看>>
JVM Class字节码之三-使用BCEL改变类属性
查看>>
[JAVA · 初级]:9.Object类提供的常用方法
查看>>
2016年2月问答活跃达人发奖品喽,大家快来领奖!
查看>>
【Android开发】多媒体应用开发-使用SoundPool播放音频
查看>>
Node.js 之对象池
查看>>
Android 随笔—— ConstraintLayout 效率爆表的技巧
查看>>
学习点和面试点
查看>>
自己封装一个可以随意删减 没用的资源文件的工具
查看>>
每一个程序员需要了解的10个Linux命令
查看>>
JobScheduler之超时检查
查看>>
最近找工作面试那些事儿(6月)
查看>>
简单VC内存检测
查看>>
Electron任务栏图标定制分析
查看>>
记一次简书图片403(hexo中简书图片迁移到阿里云oss)
查看>>
vue 2.0 路由切换以及组件缓存源代码重点难点分析
查看>>
清凉一夏,“极客时间”陪你过暑假
查看>>
掘金首秀
查看>>
vue面试整理
查看>>