Многомодульное приложение Spring с основным модулем - как включить application.yaml в подмодули - PullRequest
0 голосов
/ 09 июля 2020

Структура моего многомодульного приложения выглядит так:

|
|--- 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 для модуля, отвечающего за работу с файлами, и т. д. c.) Классы конфигурации в каждом подмодуле выглядят примерно так:

@Configuration
class Configuration1 {

    @Value("${property.from.main.module}")
    private String propertyFromMainModule;

    @Bean
    public Bean1 bean1() {
        // using propertyFromMainModule to create the bean
    }
    
}

, но свойства из основного модуля не видны в подмодулях.

Я пытался определить beans в основном модуле, но тогда они не были видны в подмодулях.

любая идея, как я могу с этим справиться и сделать свойства видимыми во всех модулях ? Конечно, определение собственного application.yaml для каждого подмодуля не помогло.

...