假设我们有一个Spring Boot应用程序和自动配置,其中定义了几个配置
@Configuration
@AutoConfigureBefore(MainAutoConfiguration.class)
public class TestAutoConfiguration {
....
@Configuration
public static class FirstNestedConfiguration {
...
}
@Configuration
public static class SecondNestedConfiguration {
...
}
}
此类通过外部库依赖项提供,并且满足所有条件,因此这些配置中的所有bean都正在加载。
然而,我需要排除FirstNestedConfiguration中提供的bean,可以这样做吗?
UPD:由于它是一个简单的Spring Boot应用程序,所以它的运行方式是
@SpringCloudApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
没有任何显式的@ComponentScan配置
您可以在组件扫描中使用excludeFilters,如下所示:
@ComponentScan(value = {'your.package'},
excludeFilters = @Filter(TestAutoConfiguration.class))
此外,如果要全局排除特定的自动配置,请使用属性:
spring:
autoconfigure.exclude: your.package.TestAutoConfiguration
但是,请注意,这样就排除了外部配置。根据这个问题,不可能排除内部配置。
我有一堆模块(比如3)。两个是基于Spring Boot的模块,另一个是基于Spring的模块。例如模块1-SpringBoot模块2-Spring Boot模块3-Common模块仅基于Spring 模块3@配置文件定义,只需要由模块2选择,而不是模块1。 除了放入一个不同的包之外,我知道如何在Spring Boot模块中禁用组件扫描非Spring Boot模块。我不想放不同的包裹。 任何帮助都
我有多个Spring Boot Starter,每个Starter定义一个数据源,如下所示: 如您所见,bean方法是在同一配置类中的另一个bean方法中直接调用的。然而,Spring Boot正在拦截该方法,然后执行自己的内部注入。这一次,它注入了一种DataSource类型。 当应用程序使用这些启动程序之一时,它不会出现任何问题。但是,当它使用多个启动程序时,我得到如下错误: 我相信这是因为S
几个月前,我在谷歌游戏中发布了一个应用程序。该应用程序有一些下载和数据从控制台谷歌用户。我将发布一个新版本,但是当我完成的时候,我想暂时删除它——保留所有的数据和下载号码。有没有可能或者当我取消发布时,所有数据都将被删除?
4.1 根据条件的自动配置 @conditional是基于条件的自动配置,一般配合Condition接口一起使用,只有接口实现类返回true,才装配,否则不装配. 用实现了Condition接口的类传入@Conditional中 @Conditional可以标记在配置类的方法中,也可以标记在配置类上.标记的位置不同,作用域不同. @Conditional可以传入多个实现了condition接口的类
我在maven中配置了一个项目,代码分析是由Sonarqube完成的。 我试图在pom.xml文件中配置SonarQube,以便从代码分析中排除一些文件。这些文件可以通过它们的类名来标识,它们在扩展名之前包含下划线字符(它们是元模型类)。下面我给出了pom.xml文件中我试图排除它们的部分: 但是,上面的代码不起作用。是否有一种方法可以从我的pom.xml文件中配置SonarQube,以便在分析源