Tenho seguinte estrutura de minha aplicação
----
|
|____SpringBootApplicationA
|
|
|___module-1
|___module-2
Cada módulo tem a sua própria configuração, por exemplo, o módulo-1 é uma biblioteca que fala com mysql, tem a sua configuração (string de conexão, nome de usuário, senha, etc ...)
Agora eu quero representar esta configuração na forma de Java POJO no módulo-1. application.yml
e um bean que ler a configuração e define os valores.
Por exemplo
class Module1Config {
private String key1;
private String key2;
// getters & setters
}
application.yml
em módulo-1
key1: val1
key2: val2
agora como um consumidor de módulo-1, SpringBootApplicationA
receberá configuração do módulo-1 que é o que definir como padrão pelo módulo-1.
Do lado do consumidor terá de configuração do aplicativo como este
someKey1: someVal1
someKey2: someVal2
module-1:
key1: overrideVal1
e quando a inicialização acontece de feijão módulo-1, eu quero que os valores a serem vistos como
key1: overrideVal1
key2: val2
Como inicialização primavera configure a respeitar os valores padrão e substituí-los?
Editar
class AppConfig {
private String key1;
private int key2;
private Module1Config conf;
// getters + setters
}
Esta é a minha configuração exemplo de aplicação, como você pode ver que tem algum específico para configuração de aplicativos e outras configurações que está aproveitando de outros módulos.
Quero conf
objeto para obter atribuído conjunto padrão de valor a partir module1 e, em seguida, qualquer aplicação que tenha especificado como uma substituição
inicialização Primavera por cargas padrão application.yml arquivo de src / main / recursos Você pode declarar outro arquivo application.yml na pasta config do caminho e configuração de raiz da pasta de configuração irá substituir a configuração de src / main / recursos
locais de configuração são pesquisados na ordem inversa. Por padrão, os locais configurados são classpath: /, classpath: / config /, file: ./, file: ./ config /. A ordem de pesquisa resultante é o seguinte:
file: ./ config / file: classpath ./: / config / classpath: /
Aqui é link de documentação oficial:
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
Eu acho que é útil