Spring Boot:简单地忽略配置类并且不加载

use*_*710 13 java spring spring-boot

我在几个@Configuration类的路径上有以下课程@SpringBootApplication:

@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);
    }

}
Run Code Online (Sandbox Code Playgroud)

我有两个使用此配置的服务(具有不同命名的Client类).

服务1正确启动并加载此配置.我可以在启动时看到一个类型的bean ApiConfig被急切地初始化.

服务2启动不正确:上述配置类被简单地忽略并且未初始化.

这些服务在单独的JVM中启动.

Ther服务有几乎相同的非常小的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
Run Code Online (Sandbox Code Playgroud)

我甚至不确定我可以在这个问题中写出什么样的附加信息.我现在已经经历了几个小时的日志,看到没有明显的区别,只是它显然忽略了我的@Configuration班级.

以前有人有这个问题吗?

Tom*_*Tom 42

默认情况下,@ SpringBootApplication注释(或更确切地说是推断的@ComponentScan注释)仅扫描注释类旁边和下面的类路径.

因此,您的配置类必须放在Application类的子包旁边或其中.