1
我有3个班。是否有可能使Spring仅在继承中实例化父bean(而不是实例化子bean)?
- 一个抽象类,abstractA与受保护的构造
- 一类扩展抽象类,父母与一对夫妇构造
的类继承了父类,子同一个构造函数
@CustomComponent public abstract class abstractA { Object var1; Object var2; Object var3; @Autowired protected abstractA(Object arg1, Object arg2, Object arg3){ var1 = arg1; var2 = arg2; var3 = arg3; } }
这是从抽象类延伸的父类
@CustomComponent
public class parent extends abstractA {
@Autowired
public parent(Object arg2, Object arg3){
this(arg1FromSomeEnum, arg2, arg3);
}
protected parent(Object arg1, Object arg2, Object arg3){
super(arg1, arg2, arg3);
}
}
这是从父扩展子类
@CustomComponent
public class child extends parent {
@Autowired
public child(Object arg2, Object arg3){
super(arg1FromSomeEnum, arg2, arg3);
}
}
自定义组件看起来像这样
@Component
@Scope(value = "prototype")
@Inherited
public @interface CustomComponent {
String value() default "";
}
所以当春天实例化所有豆类为特定的测试,它实例化,子bean正确。当父bean被实例化时,它获得2个bean [父和子]。所以,我最终得到错误,
型亲
现在的多豆,这里有什么问题?如何获得实例化的权利?我应该使用@Qualifier还是@value,如果是的话,在哪里?
你有任何类级别的注解,像@Component?您能否指定您的预期结果?也许粘贴测试的代码。 – Rozart
是的。这些类具有@Component注释。预期的结果不是得到错误。我只需要一个bean来为父项实例化。 –