让我们说我有一个基础项目,我将在其他项目中用作依赖项。在这个Base项目中,我有一个我想要自定义的组件。为了简化,我们称之为工具。 Base项目正在使用不同类中的Tools。 是否可以在新项目中覆盖Tools组件中的方法,并使Base使用覆盖的方法?
很抱歉,如果这是一个基本问题,但我没有找到任何相关信息。
答案 0 :(得分:1)
如果您扫描原始包中的原始组件bean,请停止扫描包并自行扩展并扫描新实现的包。它应该工作。换句话说,您可以定义First, Last
并将其替换为您的BeanPostProcessor
。两者都应该正常工作。
答案 1 :(得分:1)
还没有一段时间,但我想分享一个非常简单的方法来做到这一点。我简直不敢相信它是多么简单。
只需扩展您要覆盖的组件,并在其中添加@Primary。
@Component
public class Parent {
@Primary
@Component
public class Child extends Parent {
现在,您的应用将使用Child代替Parent,其中Parent是@Autowired