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

  • 相关阅读:
    并发量,tps,qps
    MYSQL安装和配置
    python 生成随机数的几种方法
    python 判断是字母的多种方法
    python实战,
    linux工作常用命令
    apache http server安装
    .py与.pyc文件区别
    上传本地文件到linux
    ms
  • 原文地址:https://www.cnblogs.com/chwy/p/13514589.html
Copyright © 2011-2022 走看看