BeanDefinition基礎(chǔ)信息講解
更新時(shí)間:2019年02月01日 15:07:15 作者:plumblum
今天小編就為大家分享一篇關(guān)于BeanDefinition基礎(chǔ)信息講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
public class BeanDefinitionHolder implements BeanMetadataElement {
private final BeanDefinition beanDefinition;
private final String beanName;//beanID
@Nullable
private final String[] aliases;//Bean的別名數(shù)組
}
public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement {
// 我們可以看到,默認(rèn)只提供 sington 和 prototype 兩種,
// 很多讀者可能知道還有 request, session, globalSession, application, websocket 這幾種,
// 不過,它們屬于基于 web 的擴(kuò)展。
String SCOPE_SINGLETON = ConfigurableBeanFactory.SCOPE_SINGLETON;
String SCOPE_PROTOTYPE = ConfigurableBeanFactory.SCOPE_PROTOTYPE;
// 比較不重要,直接跳過吧
int ROLE_APPLICATION = 0;
int ROLE_SUPPORT = 1;
int ROLE_INFRASTRUCTURE = 2;
// 設(shè)置父 Bean,這里涉及到 bean 繼承,不是 java 繼承。請參見附錄的詳細(xì)介紹
// 一句話就是:繼承父 Bean 的配置信息而已
void setParentName(String parentName);
// 獲取父 Bean
String getParentName();
// 設(shè)置 Bean 的類名稱,將來是要通過反射來生成實(shí)例的
void setBeanClassName(String beanClassName);
// 獲取 Bean 的類名稱
String getBeanClassName();
// 設(shè)置 bean 的 scope
void setScope(String scope);
String getScope();
// 設(shè)置是否懶加載
void setLazyInit(boolean lazyInit);
boolean isLazyInit();
// 設(shè)置該 Bean 依賴的所有的 Bean,注意,這里的依賴不是指屬性依賴(如 @Autowire 標(biāo)記的),
// 是 depends-on="" 屬性設(shè)置的值。
void setDependsOn(String... dependsOn);
// 返回該 Bean 的所有依賴
String[] getDependsOn();
// 設(shè)置該 Bean 是否可以注入到其他 Bean 中,只對根據(jù)類型注入有效,
// 如果根據(jù)名稱注入,即使這邊設(shè)置了 false,也是可以的
void setAutowireCandidate(boolean autowireCandidate);
// 該 Bean 是否可以注入到其他 Bean 中
boolean isAutowireCandidate();
// 主要的。同一接口的多個(gè)實(shí)現(xiàn),如果不指定名字的話,Spring 會優(yōu)先選擇設(shè)置 primary 為 true 的 bean
void setPrimary(boolean primary);
// 是否是 primary 的
boolean isPrimary();
// 如果該 Bean 采用工廠方法生成,指定工廠名稱。對工廠不熟悉的讀者,請參加附錄
// 一句話就是:有些實(shí)例不是用反射生成的,而是用工廠模式生成的
void setFactoryBeanName(String factoryBeanName);
// 獲取工廠名稱
String getFactoryBeanName();
// 指定工廠類中的 工廠方法名稱
void setFactoryMethodName(String factoryMethodName);
// 獲取工廠類中的 工廠方法名稱
String getFactoryMethodName();
// 構(gòu)造器參數(shù)
ConstructorArgumentValues getConstructorArgumentValues();
// Bean 中的屬性值,后面給 bean 注入屬性值的時(shí)候會說到
MutablePropertyValues getPropertyValues();
// 是否 singleton
boolean isSingleton();
// 是否 prototype
boolean isPrototype();
// 如果這個(gè) Bean 是被設(shè)置為 abstract,那么不能實(shí)例化,
// 常用于作為 父bean 用于繼承,其實(shí)也很少用......
boolean isAbstract();
int getRole();
String getDescription();
String getResourceDescription();
public interface AttributeAccessor {
//設(shè)置類屬性
void setAttribute(String var1, @Nullable Object var2);
@Nullable
Object getAttribute(String var1);
@Nullable
Object removeAttribute(String var1);
//是否擁有類屬性
boolean hasAttribute(String var1);
//獲取所有類屬性名
String[] attributeNames();
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
關(guān)于StringUtils.isBlank()的使用及說明
這篇文章主要介紹了關(guān)于StringUtils.isBlank()的使用及說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
Java?實(shí)現(xiàn)訂單未支付超時(shí)自動取消功能(京東商城為例)
本文以京東網(wǎng)上商城為例,給大家介紹商品在下單后沒有支付的情況下,超時(shí)自動取消功能,超過24小時(shí),就會自動取消訂單,下面使用 Java 定時(shí)器實(shí)現(xiàn)超時(shí)取消訂單功能,感興趣的朋友一起看看吧2022-01-01
java中建立0-10m的消息(字符串)實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猨ava中建立0-10m的消息(字符串)實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05
SpringBoot/Spring?AOP默認(rèn)動態(tài)代理方式實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于SpringBoot/Spring?AOP默認(rèn)動態(tài)代理方式的相關(guān)資料,Spring AOP是一款基于Java的AOP框架,其中默認(rèn)采用動態(tài)代理方式實(shí)現(xiàn)AOP功能,本文將詳細(xì)介紹動態(tài)代理的實(shí)現(xiàn)原理和使用方法,需要的朋友可以參考下2023-03-03

