Spring源码学习3:番外:BeanDefinition家族

BeanDefinition

就先简单的学习一下BeanDefinition吧!

配置Bean定义的几种方式

  • XML
  • 配置类
  • 类注解

BeanDefinition家族

RootBeanDefinition

<bean id="parentBean" class="com.example.ParentBean">
   <property name="stringProperty" value="stringValue"/>
</bean>

XML配置一:Spring 会将的parentBean信息存放在RootBeanDefinition的实例对象中!

ChildBeanDefinition

<bean id="childBean" parent="parentBean">
    <property name="anotherStringProperty" value="anotherStringValue"/>
</bean>

XML配置二:继承其他的Bean定义parentBean而形成全新的Bean定义childBean,并新增了anotherStringProperty属性,Spring 会将的childBean的信息存放在RootBeanDefinition的实例对象中!

GenericBeanDefinition

@Configuration
public class AppConfig {
    @Bean
    public MyComponent myComponent() {
        return new MyComponent();
    }
}

配置类中使用@Bean注解定义了一个bean,Spring加载该Bean信息是,会保存在GenericBeanDefinition的实例对象中

AnnotatedBeanDefinition

@Component("xm")
public class MyComponent {
    // some fields and methods
}

类上有一个@Component注解。当Spring解析这个类时,会创建一个AnnotatedBeanDefinition对象。这个AnnotatedBeanDefinition对象会保存类名(这也是bean的名字)、类的类型,以及类上的所有注解信息 比如:AOP代理、事务管理…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值