我想在超级@Bean
中声明abstract class
,以防止为每个子类声明它。
考虑这个类层次结构:
@Configuration
public class Config {
public static abstract class A {
@Bean
public myBean() {
return new MyBean();
}
}
public static class B extends A {
// Some stuff here
}
public static class C extends A {
// Some other stuff here
}
}
我无法在Spring Boot 1.5.9(Spring Framework 4.3.13)中执行此操作。
它抛出:
org.springframework.beans.BeanInstantiationException: Failed to instantiate foo.bar.A: Is it an abstract class?
有没有办法防止每个子类重复@Bean
?
答案 0 :(得分:0)
目前,您的问题不是重复的bean。问题是
class A
未对@Configuration
进行注释。如果你添加它,它将开始没有问题。
以下是配置类的规范。 The Spring's @Configuration documentation州 -
关于重复的豆类
只会创建一个Bean。 bean定义只会加载并创建一次:)