Spring Boot:配置类被简单地忽略,不加载

2022-09-01 12:39:06

我有几个s的类路径上有以下类:@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);
    }

}

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

服务 1 正确启动并加载此配置。在启动过程中,我可以看到一个类型的bean被紧急初始化。ApiConfig

服务 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

以前有人遇到过这个问题吗?


答案 1

默认情况下,批注(或者更准确地说是推断的注解)仅扫描带批注的类的类的旁边和下方的类路径。@SpringBootApplication@ComponentScan

因此,您的配置类必须放在应用程序类的子包旁边或子包中。


答案 2

推荐