对于自定义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/

10-12 03:11