spring源码(十四)--GenericBeanDefinition

GenericBeanDefinition的类层次图:
在这里插入图片描述

XML中所有的配置都可以在GenericBeanDefinition的实例类中找到相应的配置。
GenericBeanDefinition只是子类实现,而大部分通用属性都保存在AbstractBeanDefinition中。
在GenericBeanDefinition基本上就只多了parentName属性。

private String parentName;

父类AbstractBeanDefinition中,忽略静态变量和final常量:

  private volatile Object beanClass;//bean的类型
    private String scope;//bean的作用范围
    private boolean abstractFlag;//是否是抽象类
    private boolean lazyInit;//是否延迟加载
    private int autowireMode; //自动注入模式
    private int dependencyCheck;//依赖检查,spring 3.0后弃用
    private String[] dependsOn; //表示这个bean,依赖于其它beans先实例化
    private boolean autowireCandidate;//设为false,则容器在自动装配时,将不考虑该bean(即这个bean不会作为其它bean自动装配的候选者),但是这个bean还可以自动装配其它bean
    private boolean primary;//自动装配出现多个bean时,将它作为首选者
    private final Map<String, AutowireCandidateQualifier> qualifiers;//用于记录Qualifier
    private boolean nonPublicAccessAllowed;//允许访问非公开的构造器和方法
    private boolean lenientConstructorResolution;//是否以宽松的模式解析构造函数,默认为true
    private String factoryBeanName;//指定工厂类和工厂方法
    private String factoryMethodName;
    private ConstructorArgumentValues constructorArgumentValues;//记录构造函数注入属性
    private MutablePropertyValues propertyValues;//普通属性集合
    private MethodOverrides methodOverrides; //方法重写的持有者
    private String initMethodName; //初始化方法
    private String destroyMethodName; //销毁方法
    private boolean enforceInitMethod; //是否执行初始化方法
    private boolean enforceDestroyMethod;//是否执行销毁方法
    private boolean synthetic;//是否是用户定义的而不是应用程序本身定义的,创建AOP时为true
    private int role;//定义这个bean的使用,application:用户,infrastructure:完全内部使用,与用户无关;support:某些复杂配置的一部分
    private String description;//bean的描述
    private Resource resource;//这个bean定义的资源。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值