覆盖 Spring bean

Overriding a Spring bean

在我使用它的库中定义了以下 bean。

package co.random.core;

@Service
public class ApiEndpoints {

    @Value("${testApi}")
    private String testApi;

    public String getTestApi() {
        return testApi;
    }
}

然后将其注入库的另一部分,

@Autowired
ApiEndpoints apiEndpoints;

有没有办法覆盖这个 bean?

我在我的代码中尝试了以下内容,

@Configuration
public class ApiConfiguration {

    @Primary
    @Bean(name = "apiEndpoints")
    public CustomEndpoints getCustomApiEndpoints() {
        return new CustomEndpoints();
    }
}

但这会引发错误,

Field apiEndpoints in co.random.core.RandomService required a bean of type 'co.random.core.ApiEndpoints' that could not be found.

该 bean 已被覆盖,但您定义的新 bean 不符合预期自动装配的类型。 您的 bean 必须是类型(或扩展)ApiEndpoints