覆盖 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
。
在我使用它的库中定义了以下 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
。