在我的基于弹簧的项目中,我有一个带有类的核心模块('core')
@Component
public class Superclass {
// stuff
}
在整个代码中按类型注入其中的实例,如下所示:
public class AService {
@Autowired
private Superclass superclass;
// service stuff
}
我还有两个依赖于核心模块的模块,其中一个(我们称之为'module1')扩展了超类:
@component
public class Subclass extends Superclass {
// overridden stuff
}
另一个模块('module2')按原样使用超类。
现在我希望当我编译并运行“child1”时,在任何需要超类实例的地方都使用子类的实例。所以我写了一个配置类:
@Configuration
public class Module2Configuration {
@Bean
public Superclass superclass(){
return new Subclass();
}
}
当我运行它时,我看到超类和子类都 实例化了,这绝对不是我想要的。如何在“module1”中指定 Spring 应该实例化的类型?