Можно ли исключить вложенную конфигурацию из автоконфигурации в приложении Spring Boot? - PullRequest
0 голосов
/ 24 марта 2019

Предположим, у нас есть приложение Spring Boot и автоконфигурация с несколькими конфигурациями, определенными внутри него

@Configuration
@AutoConfigureBefore(MainAutoConfiguration.class)
public class TestAutoConfiguration {

    ....

    @Configuration
    public static class FirstNestedConfiguration {
        ...
    }

    @Configuration
    public static class SecondNestedConfiguration {
        ...
    }
}

этот класс предоставляет через зависимость от внешней библиотеки, и все условия выполнены, поэтому все компоненты в этих конфигурациях загружаются.

Тем не менее, мне нужно исключить компоненты, предоставленные в FirstNestedConfiguration Возможно ли это сделать?

UPD: поскольку это простое приложение Spring Boot, оно запускается как

@SpringCloudApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

без какой-либо явной конфигурации @ComponentScan

Ответы [ 2 ]

0 голосов
/ 24 марта 2019

У вас работает профильный подход?Ищите With the @Profile annotation сечение

 @Profile("ConfigOne")
 @Configuration

Документация конфигурации пружины

0 голосов
/ 24 марта 2019

Вы можете использовать excludeFilters в @ComponentScan следующим образом:

@ComponentScan(value = {'your.package'},
    excludeFilters = @Filter(TestAutoConfiguration.class))

Также, если вы хотите исключить определенную автоконфигурацию глобально, используйте свойства:

spring:
  autoconfigure.exclude: your.package.TestAutoConfiguration 

Однако,пожалуйста, обратите внимание, что таким образом вы исключаете внешнюю конфигурацию.Согласно этой проблеме невозможно исключить внутреннюю конфигурацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...