BeanDefinition基础信息讲解
publicclassBeanDefinitionHolderimplementsBeanMetadataElement{
privatefinalBeanDefinitionbeanDefinition;
privatefinalStringbeanName;//beanID
@Nullable
privatefinalString[]aliases;//Bean的别名数组
}
publicinterfaceBeanDefinitionextendsAttributeAccessor,BeanMetadataElement{
//我们可以看到,默认只提供sington和prototype两种,
//很多读者可能知道还有request,session,globalSession,application,websocket这几种,
//不过,它们属于基于web的扩展。
StringSCOPE_SINGLETON=ConfigurableBeanFactory.SCOPE_SINGLETON;
StringSCOPE_PROTOTYPE=ConfigurableBeanFactory.SCOPE_PROTOTYPE;
//比较不重要,直接跳过吧
intROLE_APPLICATION=0;
intROLE_SUPPORT=1;
intROLE_INFRASTRUCTURE=2;
//设置父Bean,这里涉及到bean继承,不是java继承。请参见附录的详细介绍
//一句话就是:继承父Bean的配置信息而已
voidsetParentName(StringparentName);
//获取父Bean
StringgetParentName();
//设置Bean的类名称,将来是要通过反射来生成实例的
voidsetBeanClassName(StringbeanClassName);
//获取Bean的类名称
StringgetBeanClassName();
//设置bean的scope
voidsetScope(Stringscope);
StringgetScope();
//设置是否懒加载
voidsetLazyInit(booleanlazyInit);
booleanisLazyInit();
//设置该Bean依赖的所有的Bean,注意,这里的依赖不是指属性依赖(如@Autowire标记的),
//是depends-on=""属性设置的值。
voidsetDependsOn(String...dependsOn);
//返回该Bean的所有依赖
String[]getDependsOn();
//设置该Bean是否可以注入到其他Bean中,只对根据类型注入有效,
//如果根据名称注入,即使这边设置了false,也是可以的
voidsetAutowireCandidate(booleanautowireCandidate);
//该Bean是否可以注入到其他Bean中
booleanisAutowireCandidate();
//主要的。同一接口的多个实现,如果不指定名字的话,Spring会优先选择设置primary为true的bean
voidsetPrimary(booleanprimary);
//是否是primary的
booleanisPrimary();
//如果该Bean采用工厂方法生成,指定工厂名称。对工厂不熟悉的读者,请参加附录
//一句话就是:有些实例不是用反射生成的,而是用工厂模式生成的
voidsetFactoryBeanName(StringfactoryBeanName);
//获取工厂名称
StringgetFactoryBeanName();
//指定工厂类中的工厂方法名称
voidsetFactoryMethodName(StringfactoryMethodName);
//获取工厂类中的工厂方法名称
StringgetFactoryMethodName();
//构造器参数
ConstructorArgumentValuesgetConstructorArgumentValues();
//Bean中的属性值,后面给bean注入属性值的时候会说到
MutablePropertyValuesgetPropertyValues();
//是否singleton
booleanisSingleton();
//是否prototype
booleanisPrototype();
//如果这个Bean是被设置为abstract,那么不能实例化,
//常用于作为父bean用于继承,其实也很少用......
booleanisAbstract();
intgetRole();
StringgetDescription();
StringgetResourceDescription();
publicinterfaceAttributeAccessor{
//设置类属性
voidsetAttribute(Stringvar1,@NullableObjectvar2);
@Nullable
ObjectgetAttribute(Stringvar1);
@Nullable
ObjectremoveAttribute(Stringvar1);
//是否拥有类属性
booleanhasAttribute(Stringvar1);
//获取所有类属性名
String[]attributeNames();
}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接