【发布时间】:2017-04-21 13:31:58
【问题描述】:
我的一些@SpringBootApplications 的类路径中有以下@Configuration 类:
@Configuration
@Import({MainConfig.class, RestConfig.class})
public class ApiConfig {
@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public Client client() throws ExecutionException, InterruptedException {
return service.create(Client.class);
}
}
我有两个使用此配置的服务(具有不同名称的 Client 类)。
服务 1 正确启动并加载此配置。我可以在启动过程中看到 ApiConfig 类型的 bean 已被急切地初始化。
服务2启动不正确:上面的配置类被简单的忽略,没有初始化。
服务在不同的 JVM 中启动。
其他服务具有几乎相同的非常小的application.properties 文件:
spring.application.name=xxx-api
server.port=0
eureka.name=xxx.api
# Only for reading properties from a central location
context.initializer.classes=com.package.contextClass
我什至不确定我可以在问题中写入什么样的附加信息。我已经浏览了几个小时的日志,没有发现明显的区别,只是它明显忽略了我的 @Configuration 类。
以前有人遇到过这个问题吗?
【问题讨论】:
-
这个配置类应该如何加载?您没有显示您的 Spring Boot 引导程序。
-
对不起,它应该使用
@SpringBootApplication加载,即使用@ComponentScan和@EnableAutoConfiguration。 -
在这两种情况下,@Configuration 类是否与您的 Springboot 应用程序类在同一个包中?
标签: java spring spring-boot