我正在开发一个应用程序,其中我将有1到n个数据中心的详细信息从属性文件传递。例如:。。
myapp.ds1.domain.name=https://www.ds1.com
myapp.ds1.domain.username=us1
myapp.ds1.domain.password=pw1
myapp.ds2.domain.name=https://www.ds2.com
myapp.ds2.domain.username=us2
myapp.ds2.domain.password=pw2
.
.
.
.
myapp.dsn.domain.name=https://www.dsn.com
myapp.dsn.domain.username=usn
myapp.dsn.domain.password=pwn
我不知道我将得到多少固定的数据中心信息,但不管有什么,我需要在我的spring引导代码中阅读它。
我知道如果我想读一个我可以使用的特定值
@Value("${myapp.ds.username:default}")
但这种动态配置,怎么办呢?任何线索都会有帮助
1条答案
按热度按时间a14dhokn1#
@value注解用于读取java代码中的环境或应用程序属性值。
如果在运行应用程序时找不到该属性,spring boot将抛出非法参数异常,因为无法解析值“${spring.application.name}”中的占位符“spring.application.name”。
为了解决占位符问题,我们可以使用下面给出的语法设置属性的默认值
例如:-
请注意,您将使用@value读取属性配置文件。