gpt4 book ai didi

java - SpringBootApplication 在ComponentScanning 其他@SpringBootApplications 时排除

转载 作者:搜寻专家 更新时间:2023-11-01 04:00:31 25 4
gpt4 key购买 nike

我在阻止 Spring Boot 自动配置某些类时遇到了一些困难(在本例中:SolrAutoConfiguration)。为了说明,我设置了一个大大简化的示例:

https://github.com/timtebeek/componentscan-exclusions

实际上有 20 多个内部 @SpringBootApplication项目,每个项目都有自己的依赖关系。 (不理想/不是我的想法,但现在很难摆脱。)

问题的出现是因为多个子项目都在使用Solr 5.2.1,而Spring Boot只兼容4.x。在最终应用程序(示例中的模块 b)中,我想导入所有 @SpringBootApplication我所有模块的类,同时防止 SolrAutoConfiguration从运行:

@ComponentScan("project") // Broad scan across all company jars
@SpringBootApplication(exclude = { SolrAutoConfiguration.class }) // Failing exclude
public class ModuleBApp {
public static void main(final String[] args) {
SpringApplication.run(ModuleBApp.class, args);
}
}

这会失败,因为 @SpringBootApplication 的任何实例通过 @ComponentScan 获得没有特定的排除,仍然加载 SolrAutoConfiguration .

在合并多个 @SpringBootApplication 时,我该怎么做才能正确排除自动配置类?上课?

我已经尝试使用 excludeFilters在我的期末 @SpringBootApplication ,但这还没有找到解决方案。

最佳答案

Spring Boot 1.3.0.M3 引入了使用属性排除自动配置的功能: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.3.0-M3-Release-Notes

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration

请注意,它应该是 spring.autoconfigure.exclude,而不是发行说明中的​​ excludes

这有助于防止 Spring Boot 在存在多个 @EnableAutoConfiguration/@SpringBootApplication 注释时加载自动配置类。

关于java - SpringBootApplication 在ComponentScanning 其他@SpringBootApplications 时排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31658170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com