2.1.3.2Spring源码解析——AbstractBeanDefinition属性

AbstractBeanDefinition.java


    private volatile Object beanClass;
    //bean的作用范围,对应bean属性的scope
  //public static final String SCOPE_DEFAULT = "";
    private String scope = SCOPE_DEFAULT;
  //是否是单例,来自bean属性的scpoe
    private boolean singleton = true;
  //是否是原型,来自bean属性的scope
    private boolean prototype = false;
  //是否是抽象,对应bean属性的abstract
    private boolean abstractFlag = false;
  //是否延迟加载,对应bean属性lazy-init
    private boolean lazyInit = false;
  //自动注入模式,对应bean属性的autowire
  //int AUTOWIRE_NO = 0;;
    private int autowireMode = AUTOWIRE_NO;
  //以来检查,spring3.0后启用这个属性
    private int dependencyCheck = DEPENDENCY_CHECK_NONE;
  //用来表示一个bean的实例化依靠另外一个bean先实例化,对应bean属性depend-on
    private String[] dependsOn;
  //autowire-candidate属性设置为false,这样容器在查找自动装配对象时候,将不考虑该bean,也就是他不会被考虑作为其他bean自动装配的候选者,但是该bean本身还是可以使自动装配来注入其他bean的
    private boolean autowireCandidate = true;
//自动装配时当出现多个bean候选者时,将作为首选,对应bean属性的primary
    private boolean primary = false;
  //用于记录Qualifier,对应子元素的qualifiers,当自动注入的时候有相同的类型的bean时候,可以用Qualifier来指定注入的bean
    private final Map<String, AutowireCandidateQualifier> qualifiers =
            new LinkedHashMap<String, AutowireCandidateQualifier>(0);
  //允许访问非公开的构造器和方法,程序可以设置
    private boolean nonPublicAccessAllowed = true;
  //是否以一种宽松的模式解析构造函数,默认为true
  /**
  如果为false,则在如下情况
  interface MyTest{}
  class MyTestImpl implements MyTest{}
  
  class Main{
    Main(MyTest i){}
    Main(MyTestImpl i){}
  }
  抛出异常,因为Spring无法准确定位那个构造器
   */
    private boolean lenientConstructorResolution = true;
    
//记录构造函数注入属性  ,对应bean属性construct-arg
    private ConstructorArgumentValues constructorArgumentValues;
//普通属性集合
    private MutablePropertyValues propertyValues;
//方法重写的持有者,记录lookup-method,replace-method元素
    private MethodOverrides methodOverrides = new MethodOverrides();
/*  对应bean属性factory-bean
* 用法
*<bean id=''instanceFactoryBean" class="com.MyTestBean">
*<bean id=''currentTime" factory-bean="instanceFactoryBean" factory-method="createTime"  >
*/
    private String factoryBeanName;
//对应bean属性factory-method
    private String factoryMethodName;
//初始化方法,对应bean属性init-method
    private String initMethodName;
//销毁方法。对应bean属性destroy-method
    private String destroyMethodName;
//是否执行init-method,程序设置
    private boolean enforceInitMethod = true;
//是否执行destroy-method,程序设置
    private boolean enforceDestroyMethod = true;
//是否是用户定义的而不是应用程序本身定义,创建AOP时候为true,程序设置
    private boolean synthetic = false;
//定义这个bean的应用,APPLICATION:用户,INFARSTRUCTURE;
    private int role = BeanDefinition.ROLE_APPLICATION;
//bean的描述信息
    private String description;
//这个bean定义的资源
    private Resource resource;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值