spring bean之间的关系:继承;依赖
2014-06-03 15:56
429 查看
概要:
‘
继承Bean配置
Spring允许继承bean的配置,被继承的bean称为父bean,继承这个父Bean的Bean称为子Bean
子Bean从父Bean中继承配置,包括Bean的属性配置
子Bean也可以覆盖从父Bean继承过来的配置
父Bean可以作为配置模版,也可以作为Bean实例,若只想把父Bean作为模版,可以配置<bean>的abstract属性为true,这样Spring将不会实例化这个Bean
并不是<bean>元素里的所有属性都会被继承。比如:autowire,abstract等。
也可以忽略父Bean的class属性,让子Bean指定自己的类,而共享相同的属性配置,但此时abstract必须设为true
依赖Bean配置
Spring允许用户通过depends-on属性设定Bean前置依赖的Bean,前置依赖的Bean会在本Bean实例化之前创建好
如果前置依赖于多个Bean,则可以通过逗号,空格或的方式配置Bean的名称
实例代码详解
代码结构:
Main.java
beans-relation.xml
‘
继承Bean配置
Spring允许继承bean的配置,被继承的bean称为父bean,继承这个父Bean的Bean称为子Bean
子Bean从父Bean中继承配置,包括Bean的属性配置
子Bean也可以覆盖从父Bean继承过来的配置
父Bean可以作为配置模版,也可以作为Bean实例,若只想把父Bean作为模版,可以配置<bean>的abstract属性为true,这样Spring将不会实例化这个Bean
并不是<bean>元素里的所有属性都会被继承。比如:autowire,abstract等。
也可以忽略父Bean的class属性,让子Bean指定自己的类,而共享相同的属性配置,但此时abstract必须设为true
依赖Bean配置
Spring允许用户通过depends-on属性设定Bean前置依赖的Bean,前置依赖的Bean会在本Bean实例化之前创建好
如果前置依赖于多个Bean,则可以通过逗号,空格或的方式配置Bean的名称
实例代码详解
代码结构:
Main.java
package com.coslay.beans.relation; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.coslay.beans.autowire.Address; import com.coslay.beans.autowire.Person; public class Main { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-relation.xml"); Address address = (Address) ctx.getBean("address3"); System.out.println(address); address = (Address) ctx.getBean("address2"); System.out.println(address); Person person = (Person) ctx.getBean("person"); System.out.println(person); } }
beans-relation.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 抽象bean:bean的abstract属性为true的bean。这样bean不能被IOC容器实例化,只能用来被继承继承 若某一个bean的class属性没有指定,则该bean必须是一个抽象bean--> <bean id="address" p:city="Beijing" p:street="WuDaoKou" abstract="true"></bean> <!-- <bean id="address2" class="com.coslay.beans.autowire.Address" p:city="Beijing" p:street="DaZhongSi"></bean> --> <!-- bean 配置的继承:使用bean 的parent 属性指定继承哪个baen的配置 --> <bean id="address2" class="com.coslay.beans.autowire.Address" parent="address"></bean> <bean id="address3" class="com.coslay.beans.autowire.Address" p:street="DaZhongSi" parent="address2"></bean> <bean id="car" class="com.coslay.beans.autowire.Car" p:brand="Audi" p:price="300000"></bean> <!-- 要求在配置Person时,必须有一个关联的car!换句话说person这个bean依赖于Car这个bean --> <bean id="person" class="com.coslay.beans.autowire.Person" p:name="Tom" p:address-ref="address2" depends-on="car"></bean> </beans>
相关文章推荐
- Spring学习记录(四)---bean之间的关系:继承、依赖
- Spring-4 bean之间的关系----继承和依赖
- Spring 框架Bean之间的关系(继承、依赖)
- spring bean之间的关系:继承;依赖
- 【跟我学spring 4.0 】之第五节-配置bean之间的关系:继承、依赖
- Spring配置--Bean之间的关系(继承和依赖)
- [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件
- spring学习小结3——bean之间的继承,依赖关系
- Spring 中 bean 之间的关系:继承;依赖
- spring学习小结——bean之间的关系 继承 依赖
- spring- bean之间的关系 继承 依赖
- Spring4之Bean之间的关系(继承、依赖、引用)Bean的作用范围
- Spring-5:Bean之间的继承与依赖
- bean之间的关系:继承、依赖
- Spring内核研究-管理bean之间的关系二(自动依赖检查)
- spring学习笔记(5)——bean的继承与依赖关系
- 一步一步学习Spring(3)-管理Bean之间的关系二(自动依赖检查)
- Spring4深入理解IOC&DI02----Bean配置--自动装配、bean之间的继承与依赖、使用外部属性文件
- 不同作用域(scope)的Spring Bean之间的依赖关系的动态代理注入
- 10009---bean 之间的关系:继承;依赖