Spring-7,bean的关系
来源:互联网 发布:期货交易统计软件 编辑:程序博客网 时间:2024/06/05 03:45
spring中bean之间的关系包含继承和依赖两种
继承
spring bean之间的继承
spring与允许bean继承另外一个bean的配置,被继承的bean称为父bean,继承的bean称为子bean
子bean从父bean中继承配置,包括bean的属性配置,也可以覆盖父bean的属性,但并不是所有的bean都会被继承(autowire,abstract)
把父bean设置abstract设置为true,使得父bean称为抽象bean,这样的抽象bean作为配置模板,专门用来被其他bean继承
抽象bean不会被实例化
可以在父bean中忽略class属性,让子bean自己制定class属性,但是 父bean必须为抽象bean(abstract=“true”)
例如:
address.java
package com.tuxianchao.spring.beansRelation;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Address { private String city; private String street; private String number; public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("beanRealtion.xml"); Address address = (Address) ctx.getBean("address"); System.out.println(address); address = (Address) ctx.getBean("address2"); System.out.println(address); address = (Address) ctx.getBean("address4"); System.out.println(address); } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } @Override public String toString() { return "Address [city=" + city + ", street=" + street + ", number=" + number + "]"; }}
配置文件:
<bean id="address" class="com.tuxianchao.spring.beansRelation.Address" p:city="chengdu" p:street="street1" p:number="001"> </bean> <!-- address2继承address,使用parent属性,并且覆盖了父bean的number属性 --> <bean id="address2" parent="address" p:number="002"> </bean> <bean id="address3" abstract="true" p:city="chengdu"></bean> <!--这里address4继承了抽象bean address,并且制定了自己的class,覆盖了属性street和number --> <bean id="address4" parent="address3" class="com.tuxianchao.spring.beansRelation.Address" p:street="street1" p:number="001"></bean>
测试:
依赖
Spring bean之间的依赖关系
spring允许通过depends-on配置依赖的前置bean,这样一来,依赖的bean会在当前bean的实例创建之前创建好
依赖的多个前置bean,使用逗号,空格分隔
例如,这里person类有连个属性,分别是address和car
在配置文件中:
<bean id="addr" class="com.tuxianchao.spring.beansRelation.Address" p:city="chengdu" p:street="street1" p:number="001"></bean> <bean id="car" class="com.tuxianchao.spring.beansRelation.Car" p:brand="Jeep" p:price="400000.0"></bean> <!--这里perosn实例依赖于addr和car,要求创建person之前必须首先创建car和add,可以使用depends-on来配置这种依赖关系 ,这样确保peerson实例的addr和car不为null --> <bean id="person" class="com.tuxianchao.spring.beansRelation.Person" p:name="Mike" depends-on="addr;car" p:address-ref="addr" p:car-ref="car"></bean>
0 0
- Spring-7,bean的关系
- 【Spring】Bean之间的关系
- Spring Bean之间的关系
- Spring-bean之间的关系
- (六)spring的bean之间的关系
- spring bean之间的关系:继承;依赖
- spring配置bean之间的关系
- spring中bean之间的关系配置
- spring学习历程---bean之间的关系
- spring- bean之间的关系 继承 依赖
- spring容器和bean的关系
- Spring配置文件中的Bean之间的关系
- Spring中Bean的各种关系解释
- spring 5 bean配置--bean之间的关系
- Spring学习(五)-Spring与Bean的关系
- Spring -- Bean自动装配&Bean之间关系&Bean的作用域
- spring的bean和类之间的关系
- 008. Spring Bean继承关系
- Samba的安装和基本应用
- https原理解析:证书传递、验证和数据加密、解密过程解析
- JSON基础知识总结
- 网络常见攻击类型
- RabbitMQ .NET Client 实战实验
- Spring-7,bean的关系
- 格式化字符串漏洞利用 一、引言
- 网络防范攻击策略
- 真相:为什么HR只浏览简历却没有面试
- 史上最简单的 Spring MVC 教程(一)
- 蚁群算法
- 端口与服务
- Unity接入Google Play 游戏-使用play-games-plugin-for-unity
- 使用OpenSSH远程管理Linux服务器