对于自定义Scope
(由于法律原因,我无法在此处发布)我需要一个覆盖BeanFactory
方法的自定义getBean(Class requiredType)
,例如:
public class MyBeanFactory implements BeanFactory {
@Override
public <T> T getBean(Class<T> requiredType) throws BeansException {
if(MyScope.someSetting) {
return useBeanA();
} else {
return useBeanB();
}
}
}
这个
BeanFactory
必须在我的整个spring容器中用于获取bean(按类型)。如何将其注入ApplicationContext
(或者我需要自定义ApplicationContext
)?我不能使用
FactoryBean
,因为逻辑对于一个(或几个)bean并不特殊。我不能使用InstantiationAwareBeanPostProcessor
,因为其postProcessBeforeInstantiation()
方法仅被调用一次。 最佳答案
正如“ spacetrucker”(请参阅问题注释)所建议的那样,我解决了完全不同的问题。我将我的bean实例化/选择逻辑添加到我的自定义Scope
中,并通过构造函数将BeanFactory
注入到此Scope
中。
关于java - 如何注入(inject)自定义BeanFactory,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43679117/