public abstract class BeanContainer extends Object
| 限定符和类型 | 字段和说明 |
|---|---|
protected Map<Class<?>,BeanBuilder<?>> |
beanBuilders
bean 构建器
|
protected Map<Class<?>,BeanExtractor<?>> |
beanExtractors
bean 提取器
|
protected Map<Class<?>,BeanInjector<?>> |
beanInjectors
bean 注入器
|
protected Map<Class<?>,InterceptorEntity> |
beanInterceptors
bean 拦截器
|
protected Set<org.noear.solon.core.BeanContainer.SubscriberEntity> |
beanSubscribers
bean订阅者
|
| 构造器和说明 |
|---|
BeanContainer(ClassLoader classLoader,
Props props) |
| 限定符和类型 | 方法和说明 |
|---|---|
<T extends Annotation> |
beanAroundAdd(Class<T> anno,
Interceptor interceptor)
添加环绕处理
|
<T extends Annotation> |
beanAroundAdd(Class<T> anno,
Interceptor interceptor,
int index)
添加环绕处理
|
<T extends Annotation> |
beanAroundGet(Class<T> anno)
获取环绕处理
|
<T extends Annotation> |
beanBuilderAdd(Class<T> anno,
BeanBuilder<T> builder)
添加 bean builder, injector, extractor
|
<T extends Annotation> |
beanExtractorAdd(Class<T> anno,
BeanExtractor<T> extractor) |
List<BeanWrap> |
beanFind(BiPredicate<String,BeanWrap> condition)
查找Bean
|
List<BeanWrap> |
beanFind(Predicate<BeanWrap> condition)
查找Bean
|
void |
beanForeach(BiConsumer<String,BeanWrap> action)
遍历bean库 (拿到的是bean包装)
|
void |
beanForeach(Consumer<BeanWrap> action)
遍历bean包装库
|
void |
beanInject(VarHolder varH,
String name)
尝试变量注入 字段或参数
|
protected void |
beanInject(VarHolder varH,
String name,
boolean autoRefreshed) |
<T extends Annotation> |
beanInjectorAdd(Class<T> anno,
BeanInjector<T> injector) |
protected void |
beanInjectProperties(Class<?> clz,
BeanWrap bw) |
void |
beanNotice(Object nameOrType,
BeanWrap wrap)
bean通知
|
void |
beanRegister(BeanWrap bw,
String name,
boolean typed)
尝试BEAN注册(按名字和类型存入容器;并进行类型印射)
|
protected void |
beanRegisterSup0(BeanWrap bw)
尝试Bean的基类注册
|
void |
beanSubscribe(Object nameOrType,
Consumer<BeanWrap> callback)
bean订阅
|
void |
clear() |
void |
copyTo(BeanContainer container)
容器能力制复到另一个容器
|
<T> T |
getBean(Object nameOrType) |
<T> void |
getBeanAsyn(Object nameOrType,
Consumer<T> callback) |
ClassLoader |
getClassLoader() |
Props |
getProps() |
BeanWrap |
getWrap(Object nameOrType)
获取一个bean包装
|
void |
getWrapAsyn(Object nameOrType,
Consumer<BeanWrap> callback) |
boolean |
hasWrap(Object nameOrType) |
void |
putWrap(Class<?> type,
BeanWrap wrap)
存入到bean库(存入成功会进行通知)
|
void |
putWrap(String name,
BeanWrap wrap)
存入bean库(存入成功会进行通知)
|
BeanWrap |
wrap(Class<?> type,
Object bean)
包装
|
BeanWrap |
wrapAndPut(Class<?> type)
包装并推入
|
BeanWrap |
wrapAndPut(Class<?> type,
Object bean)
包装并推入
|
protected abstract BeanWrap |
wrapCreate(Class<?> type,
Object bean) |
protected final Map<Class<?>,BeanBuilder<?>> beanBuilders
protected final Map<Class<?>,BeanInjector<?>> beanInjectors
protected final Map<Class<?>,BeanExtractor<?>> beanExtractors
protected final Map<Class<?>,InterceptorEntity> beanInterceptors
protected final Set<org.noear.solon.core.BeanContainer.SubscriberEntity> beanSubscribers
public BeanContainer(ClassLoader classLoader, Props props)
public Props getProps()
public ClassLoader getClassLoader()
public void clear()
public void copyTo(BeanContainer container)
public <T extends Annotation> void beanBuilderAdd(Class<T> anno, BeanBuilder<T> builder)
public <T extends Annotation> void beanInjectorAdd(Class<T> anno, BeanInjector<T> injector)
public <T extends Annotation> void beanExtractorAdd(Class<T> anno, BeanExtractor<T> extractor)
public <T extends Annotation> void beanAroundAdd(Class<T> anno, Interceptor interceptor, int index)
index - 执行顺序public <T extends Annotation> void beanAroundAdd(Class<T> anno, Interceptor interceptor)
public <T extends Annotation> InterceptorEntity beanAroundGet(Class<T> anno)
public void putWrap(String name, BeanWrap wrap)
wrap - 如果raw为null,拒绝注册public void putWrap(Class<?> type, BeanWrap wrap)
wrap - 如果raw为null,拒绝注册public boolean hasWrap(Object nameOrType)
public <T> T getBean(Object nameOrType)
public void beanRegister(BeanWrap bw, String name, boolean typed)
protected void beanRegisterSup0(BeanWrap bw)
public void beanInject(VarHolder varH, String name)
varH - 变量包装器name - 名字(bean name || config ${name})@Note(value="\u904d\u5386bean\u5e93 (\u62ff\u5230\u7684\u662fbean\u5305\u88c5)") public void beanForeach(BiConsumer<String,BeanWrap> action)
@Note(value="\u904d\u5386bean\u5305\u88c5\u5e93") public void beanForeach(Consumer<BeanWrap> action)
@Note(value="\u67e5\u627ebean\u5e93 (\u62ff\u5230\u7684\u662fbean\u5305\u88c5)") public List<BeanWrap> beanFind(BiPredicate<String,BeanWrap> condition)
Copyright © 2022. All rights reserved.