Bean之间的关系:继承;依赖
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实例:
1 | <bean id = "address" class = "com.spring.helloWorld.Address" |
输出结果:Address [city=BeiJing,street=WuDaoKou]
Address [city=BeiJing,street=DaZhongSi]
抽象Bean实例:
1 | <!-- 抽象Bean:bean的abstract属性为true的bean,不能被IOC容器实例化,可以作为模板被继承。 |
输出结果:Address [city=BeiJing,street=WuDaoKou]
Address [city=BeiJing,street=WuDaoKou]
依赖Bean配置
- Spring允许用户通过depends-on属性设定Bean前置依赖的Bean,前置依赖的Bean会在本Bean实例化之前创建好
- 如果前置依赖于多个Bean,则可以通过逗号,空格的方式配置Bean的名称
依赖Bean实例:
1 | <!-- 缺少这个bean会报错 --> |