覆盖抽象class的@bean方法以防止bean注入
Overriding @bean method of abstract class to prevent bean injection
我正在覆盖抽象 class 的 @bean
注释方法。我这样做是为了防止从那个抽象 class.
创建 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。我应该怎么做才能防止 parent class 的@bean 被解雇?
从 @Bean
注释方法返回 null 不会注册 bean。
class MyClass extends AbstractClass {
@Bean(name="customOperation")
OperationClass injectBean() {
return null;
}
}
如果您的 child 被 spring 扫描,则无法阻止摘要 class 的 bean 注册。在覆盖 parent 方法时,您可以控制 bean 创建逻辑。
我正在覆盖抽象 class 的 @bean
注释方法。我这样做是为了防止从那个抽象 class.
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。我应该怎么做才能防止 parent class 的@bean 被解雇?
从 @Bean
注释方法返回 null 不会注册 bean。
class MyClass extends AbstractClass {
@Bean(name="customOperation")
OperationClass injectBean() {
return null;
}
}
如果您的 child 被 spring 扫描,则无法阻止摘要 class 的 bean 注册。在覆盖 parent 方法时,您可以控制 bean 创建逻辑。