Spring boot 从依赖项重写@Component

Spring boot 从依赖项重写@Component,spring-boot,Spring Boot,假设我有一个基础项目,我将在其他项目中用作依赖项。在这个基础项目中,我有一个组件,我想使其可定制。为了简化,我们称之为工具。基本项目使用不同类中的工具。 是否可以在新项目中重写Tools组件中的方法,并使Base使用重写的方法 很抱歉,如果这是一个基本问题,但我没有找到任何关于此问题的信息。如果您扫描原始组件bean的原始包,请停止扫描该包并自行扩展,然后扫描新实现的包。这应该是可行的。换句话说,您可以定义一个BeanPostProcessor并将其替换为您的。这两种方法都可以很好地工作。已经有

假设我有一个基础项目,我将在其他项目中用作依赖项。在这个基础项目中,我有一个组件,我想使其可定制。为了简化,我们称之为工具。基本项目使用不同类中的工具。 是否可以在新项目中重写Tools组件中的方法,并使Base使用重写的方法


很抱歉,如果这是一个基本问题,但我没有找到任何关于此问题的信息。

如果您扫描原始组件bean的原始包,请停止扫描该包并自行扩展,然后扫描新实现的包。这应该是可行的。换句话说,您可以定义一个
BeanPostProcessor
并将其替换为您的。这两种方法都可以很好地工作。

已经有一段时间了,但我想分享一种非常简单的方法。我不敢相信这是多么简单

只需扩展要覆盖的组件,并在其中添加@Primary

@Component
public class Parent {

@Primary
@Component
public class Child extends Parent {

现在,您的应用程序将使用Child而不是Parent,其中Parent是@Autowired

我认为您需要使用事件处理程序为其生成基于事件的代码。谢谢,BeanPostProcessor已成功替换了该组件。