gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 11:47:04 29 4
gpt4 key购买 nike

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

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

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

出现该问题的原因是多个子项目使用 Solr 5.2.1,但 Spring Boot 仅兼容 4.x。在最终的应用程序(示例中的 module-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 时如何正确排除自动配置类类(class)?

我已经尝试与 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/42248357/

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