重写抽象类的@bean方法以防止bean注入

问题描述 投票:0回答:1

我正在重写一个抽象类的@bean注释方法。我这样做是为了防止从该抽象类创建bean。

class AbstractClass {

    @Bean
    OperationClass injectBean() {
        //injects its own type of OperationClass
    }
}


class MyClass extends AbstractClass {

    @Bean(name="customOperation")
    OperationClass injectBean() {
        //inject my own bean
    }

}

但是,这段代码最终会在spring上下文中注册2个bean。我该怎么做才能阻止父类的@bean被解雇?

java spring dependency-injection override abstract-class
1个回答
0
投票

@Bean注释方法返回null不会注册bean。

class MyClass extends AbstractClass {

    @Bean(name="customOperation")
    OperationClass injectBean() {
        return null;
    }

}

如果您的孩子被春天扫描,则无法阻止抽象类中的bean注册。在重写父方法时,您可以控制bean创建逻辑。

© www.soinside.com 2019 - 2024. All rights reserved.