Arj*_*Arj 6 java spring properties spring-boot
在 Spring Boot 应用程序中,我希望能够在文件中声明域对象列表,并将它们作为aapplication.properties读取。 List<TheDomainObject>Bean
例如,假设我有以下内容application.properties:
com.application.person.john.name=John Smith
com.application.person.john.home-directory=/Users/john.smith
com.application.person.john.private-key-file=/Users/john.smith/.ssh/id_rsa
com.application.person.adam.name=Adam Bell
com.application.person.adam.home-directory=/Users/adam.bell
com.application.person.adam.private-key-file=/Users/adam.bell/.ssh/id_rsa
etc
Run Code Online (Sandbox Code Playgroud)
即我希望将每个人的属性分组在一个键下。我可以添加任意数量的键(人)。
我不需要直接引用这些属性,但我想声明一个 Domain 对象,如下所示(缩写):
class Person {
String id; (this would be the 'key', i.e. 'john', 'adam')
String name;
Path homeDirectory;
Path privateKeyFile;
// boilerplate
}
Run Code Online (Sandbox Code Playgroud)
然后收到一个List<Person>通过Configuration。越自动化越好,但如果需要的话,我非常乐意实现构建器或一些额外的转换器逻辑。
我找不到此类事情的任何文档,但我在log4j中看到过它,例如,您可以在其中动态添加任何包名称的日志记录属性,因此必须至少可以检索这些密钥。
我知道我可以以不同的方式执行此操作,例如通过使用data.sql导入脚本,但就我而言,将其采用单个属性文件(或 yaml)格式是非常理想的。
小智 2
为什么不使用id作为显式属性?
例如(yaml):
com:
application:
persons:
-
id: john
name: John Smith
home-directory: /Users/john.smith
-
id: adam
name: Adam Bell
home-directory: /Users/adam.bell
Run Code Online (Sandbox Code Playgroud)
这将解决List<Person> persons;
| 归档时间: |
|
| 查看次数: |
19827 次 |
| 最近记录: |