我有以下应用程序结构。
每个模块都有自己的配置,例如,module-1是与mysql通信的库,它有自己的配置(连接字符串、用户名、密码等)。
现在我想以Java POJO的形式表示这个配置在module-1中。使用
例如:
如何配置Spring Boot以尊重默认值并覆盖它们?
这是我的示例应用程序配置,您可以看到它具有某些特定于应用程序配置的内容,并且它从其他模块中利用了其他配置。
我希望
----
|
|____SpringBootApplicationA
|
|
|___module-1
|___module-2
每个模块都有自己的配置,例如,module-1是与mysql通信的库,它有自己的配置(连接字符串、用户名、密码等)。
现在我想以Java POJO的形式表示这个配置在module-1中。使用
application.yml
和一个读取配置并设置值的bean。例如:
class Module1Config {
private String key1;
private String key2;
// getters & setters
}
application.yml
at module-1
key1: val1
key2: val2
现在作为module-1的消费者,SpringBootApplicationA
将会接收module-1的配置,这是由module-1设置的默认配置。
在消费者端它将具有以下应用配置
someKey1: someVal1
someKey2: someVal2
module-1:
key1: overrideVal1
当模块1的bean初始化时,我希望能够看到这些值作为:
key1: overrideVal1
key2: val2
如何配置Spring Boot以尊重默认值并覆盖它们?
编辑
class AppConfig {
private String key1;
private int key2;
private Module1Config conf;
// getters + setters
}
这是我的示例应用程序配置,您可以看到它具有某些特定于应用程序配置的内容,并且它从其他模块中利用了其他配置。
我希望
conf
对象从module1获得默认值集,然后再根据应用程序指定的覆盖值进行分配。