Многомодульное приложение Spring с основным модулем - как включить application.yaml в подмодули
Структура моего многомодульного приложения выглядит так
|
|--- module 1
|
|- Configuration1.java
|
|--- module 2
|
|- Configuration2.java
|
|--- mainModule
|
|- Application // holds main() and SpringApplication.run call
|- application.yaml
Идея состоит в том, что каждый подмодуль является независимой частью приложения и ничего не знает о внешнем мире. Только основной модуль включает подмодули и отвечает только за запуск приложения.
Файл Gradle в основном модуле включает
implementation(
project(':module1'),
project(':module2'),
)
Каждый модуль определяет свои собственные bean-компоненты, которым необходимо ввести некоторые свойства (например, имена корзин AWS S3 для модуля, отвечающего за работу с файлами и т. Д.). Классы конфигурации внутри каждого подмодуля выглядят примерно так:
@Configuration
class Configuration1 {
@Value("${property.from.main.module}")
private String propertyFromMainModule;
@Bean
public Bean1 bean1() {
// using propertyFromMainModule to create the bean
}
}
но свойства из основного модуля не видны в подмодулях.
Я попытался определить beans в основном модуле, но тогда они не были видны в подмодулях.
есть идеи, как я могу с этим справиться и сделать свойства видимыми во всех модулях? Конечно, определение собственного application.yaml для каждого подмодуля не помогло.