Spring---Bean的继承与依赖

Spring 允许继承 bean 的配置(通过Bean的parent属性来指定,例如parent=”teacher“),
  被继承的 bean 称为父 bean.
    继承这个父 Bean 的 Bean 称为子 Bean
    I子 Bean 从父 Bean 中继承配置, 包括 父Bean 的属性配置
    II子 Bean 也可以覆盖从父 Bean 继承过来的配置
    III父 Bean 可以作为配置模板(也就是作为抽象Bean), 也可以作为 Bean 实例.
    IV若只想把父 Bean 作为模板, 可以设置 <bean> 的abstract 属性为 true, 这样 Spring 将不会实例化这个 Bean
    V并不是 <bean> 元素里的所有属性都会被继承. 比如: autowire, abstract 等.
    VI也可以忽略父 Bean 的 class 属性, 让子 Bean 指定自己的类, 而共享相同的属性配置. 但此时 abstract 必须设为 true

Spring 允许用户通过 depends-on 属性设定 Bean 前置依赖的Bean(通过Bean的depend-on属性来指定,例如depend-on="person,student"), 前置依赖:就是说Bean1必选依赖于Bean2,也就是说Bean2一定要在Bean1之前实现
    I前置依赖的 Bean 会在本 Bean 实例化之前创建好

    II如果前置依赖于多个 Bean,则可以通过逗号,空格或的方式配置 Bean 的名称

时间: 2024-10-10 09:27:50

Spring---Bean的继承与依赖的相关文章

【Spring IoC】Spring Bean(二)

一.Spring Bean的定义 被称作 bean 的对象是构成应用程序的支柱也是由 Spring IoC 容器管理的.bean 是一个被实例化,组装,并通过 Spring IoC 容器所管理的对象.这些 bean 是由容器提供的配置元数据创建的. bean 定义包含称为配置元数据的信息.主要包括: 如何创建一个 bean bean 的生命周期的详细信息 bean 的依赖关系 每个 bean 可以定义的属性有: class:必填,用来定义类的全限定名(包名+类名).只有子类Bean不用定义该属性

Spring学习记录(四)---bean之间的关系:继承、依赖

     继承 这里说的继承和java的继承是不一样的,不是父类子类.但思想很相似,是父bean和子bean 1.父bean是一个实例时.它本身是一个完整的bean 2.父bean是模板,抽象bean,不能被实例化,只是来被继承. 当遇到一个类要实例化出很多相似的bean对象时,如下,看起来是不是很不简洁 1 <bean id="address1" class="com.guigu.spring.autowire.Address" 2 p:city="

spring bean之间的关系:继承;依赖

概要: ' 继承Bean配置 Spring同意继承bean的配置,被继承的bean称为父bean.继承这个父Bean的Bean称为子Bean 子Bean从父Bean中继承配置,包含Bean的属性配置 子Bean也能够覆盖从父Bean继承过来的配置 父Bean能够作为配置模版,也能够作为Bean实例,若仅仅想把父Bean作为模版,能够配置<bean>的abstract属性为true.这样Spring将不会实例化这个Bean 并非<bean>元素里的全部属性都会被继承.比方:autow

bean之间的关系:继承、依赖

 继承 这里说的继承和java的继承是不一样的,不是父类子类.但思想很相似,是父bean和子bean 1.父bean是一个实例时.它本身是一个完整的bean 2.父bean是模板,抽象bean,不能被实例化,只是来被继承. 当遇到一个类要实例化出很多相似的bean对象时,如下,看起来是不是很不简洁 1 <bean id="address1" class="com.guigu.spring.autowire.Address" 2 p:city="Bei

Spring Bean依赖但注入(autowired或resource)时NullPointerException(xml和annotation混用的场景下)

项目中同时使用了xml和annotation的方式管理Spring Bean 启动时候报NullPointerException,依赖注入失败! 参考: http://fly0wing.iteye.com/blog/2083398

Spring bean依赖注入、bean的装配及相关注解

依赖注入 Spring主要提供以下两种方法用于依赖注入 基于属性Setter方法注入 基于构造方法注入 Setter方法注入 例子: public class Communication { private Messaging messaging; /* * DI via Setter */ public void setMessaging(Messaging messaging){ this.messaging = messaging; } public void communicate(){

Spring源码解析(四)Bean的实例化和依赖注入

我们虽然获得了Bean的描述信息BeanDefinition,但是什么时候才会真正的实例化这些Bean呢.其实一共有两个触发点,但是最后实际上调用的是同一个方法. 第一个:在AbstractApplicationContext的refresh()方法中,容器会初始化lazy-init=false的bean. // Instantiate all remaining (non-lazy-init) singletons. finishBeanFactoryInitialization(beanFa

Spring Bean注入/单例理解/循环依赖

理解循环依赖问题,首先明白spring有四种注入方式. 第一种,SET注入a类中持有b类的引用,并且a类有b的set方法.在bean中添加<property>标签即可注入.实质上是将b实例化,然后调用set方法注入. <bean id="a" class="com.qunar.pojo.StudentA" scope="singleton"> <property name="studentB" r

Spring - bean的依赖关系(depends-on属性)

depends-on是bean标签的属性之一,表示一个bean对其他bean的依赖关系.乍一想,不是有ref吗?其实还是有区别的,<ref/>标签是一个bean对其他bean的引用,而depends-on属性只是表明依赖关系(不一定会引用),这个依赖关系决定了被依赖的bean必定会在依赖bean之前被实例化,反过来,容器关闭时,依赖bean会在被依赖的bean之前被销毁. 示例如下: <bean id="beanOne" class="ExampleBean

Spring Bean配置

Spring 是什么 •Spring 为简化企业级应用开发而生. 使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能. •Spring 是一个 IOC(DI) 和 AOP 容器框架. –轻量级:Spring 是非侵入性的 - 基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API –依赖注入(DI --- dependency injection.IOC) –面向切面编程(AOP --- aspect oriented programm