Загрузка классов конфигурации, присутствующих в Spring MVC

1

У меня есть приложение Spring MVC с несколькими отдельными модулями, все из которых имеют свой собственный класс JavaConfig @Configuration. Моя цель - загрузить все весенние конфигурации, которые присутствуют в войне. В зависимости от параметров, переданных команде сборки, некоторые модули и, следовательно, конфигурации могут отсутствовать, и поэтому @Import не является вариантом, поскольку он будет бросать ClassDefNotFound.

Весной документация гласит:

@Конфигурация мета-аннотируется с @Component, поэтому классы @Configuration являются кандидатами на сканирование компонентов (как правило, с использованием элемента Spring XML), и поэтому также могут использовать @Autowired/@Inject на уровне поля и метода (но не в конструкторе уровень).

Классы @Configuration могут не только загружаться с помощью сканирования компонентов, но также сами могут настраивать сканирование компонентов с помощью аннотации @ComponentScan:

Однако основная точка входа в класс приложения выглядит так:

@Configuration
@EnableWebMvc
@EnableAutoConfiguration
@ComponentScan(basePackages="com.svims.common.web.config")
public class Application extends WebMvcConfigurerAdapter {

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

}

И есть еще один класс с @Configuration аннотацией в com.svims.common.web.config пакете, который не найден или бобы внутри этой конфигурации просто не загружены.

Я попытался добавить это в основной класс приложения

@ComponentScan(basePackages="com.svims.common.web.config", 
    includeFilters = {@ComponentScan.Filter( Configuration.class ) })

Чтобы убедиться, что сканирование настроено на поиск этих типов классов, но оно по-прежнему не работает.

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

Кто-нибудь знает, что происходит, или какие-либо предложения о том, как я могу это сделать?

  • 0
    Вы абсолютно уверены, что Configuration класса, которая должна быть расположена при сканировании компонентов, присутствует в пути к классам? Если да, отладили ли вы, чтобы увидеть, действительно ли этот класс создается?
  • 0
    @geo и поставь это как ответ, и я отмечу это. Это простой способ объяснить, что произошло.
Теги:
spring
spring-mvc
spring-java-config

1 ответ

0
Лучший ответ

Всегда проверяйте проверенные пакеты снова и снова.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню