zoukankan      html  css  js  c++  java
  • RootBeanDefinition与GenericBeanDefinition (转)

    GenericBeanDefinition : 通用的bean实现,自2.5以后新加入的bean文件配置属性定义类,是ChildBeanDefinition和RootBeanDefinition更好的替代者。

    AnnotatedGenericBeanDefinition:存储@Configuration注解注释的类

    ScannedGenericBeanDefinition:存储@Component、@Service、@Controller等注解注释的类

    spring初始化时,会用GenericBeanDefinition或是ConfigurationClassBeanDefinition(用@Bean注解注释的类)存储用户自定义的Bean,在初始化Bean时,又会将其转换为RootBeanDefinition。

    GenericBeanDefinition的patentName属性指定了当前类的父类,最重要的是它实现了parentName属性的setter、getter函数,RootBeanDefinition没有parentName属性,对应的getter函数只是返回null,setter函数不提供赋值操作

    也就是说RootBeanDefinition不提供继承相关的操作,但是初始化时使用的是RootBeanDefinition,那父类的性质如何体现?

    这里要注意一点,子类会覆盖父类中相同的属性,所以Spring会首先初始化父类的RootBeanDefinition,然后根据子类的GenericBeanDefinition覆盖父类中相应的属性,最终获得子类的RootBeanDefinition,这个比较巧妙,不需要使用两个对象来体现父类与子类的关系,以后自己写代码时可以借鉴一下

    转载:https://blog.csdn.net/dhaiuda/article/details/83311495

  • 相关阅读:
    AGC算法
    Cordic算法
    git Remote: HTTP Basic: Access denied Git failed with a fatal error.
    mysql 定义用户变量
    Docker 报错处理
    IIS,Docker 部署.Net Core
    SpringBoot向后台传参的若干种方式
    修改Mysql 数据库以及表字符集
    安装Docker
    获取北京时间
  • 原文地址:https://www.cnblogs.com/chwy/p/13514589.html
Copyright © 2011-2022 走看看