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

  • 相关阅读:
    前端vue使用js-xlsx导出excel的三种方法
    vue使用echarts绘制河南地图并实现个人轨迹
    VUE中使用Echarts绘制柱状图
    springboot项目配置拦截器
    springboot+mybatis的多数据源配置
    Java后端高频面试题汇总
    Java基础专题
    Java集合专题
    Java并发专题
    JVM专题javascript:;
  • 原文地址:https://www.cnblogs.com/chwy/p/13514589.html
Copyright © 2011-2022 走看看