В приложении Spring Boot я хотел бы иметь возможность объявить список моих доменных объектов в моем файле application.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
Т.е. я хотел бы иметь свойства для каждого человека, сгруппированного по ключу. Я мог бы добавить столько ключей (людей), сколько захочу.
Мне не нужно было бы ссылаться на эти свойства напрямую, но я бы хотел объявить объект Domain следующим образом (сокращенно):
class Person {
String id; (this would be the 'key', i.e. 'john', 'adam')
String name;
Path homeDirectory;
Path privateKeyFile;
// boilerplate
}
, а затем получите от List<Person>
до Configuration
. Чем больше автоматов c, тем лучше, но я был бы более чем рад внедрить компоновщики или какой-либо дополнительный лог преобразователя c, если это необходимо.
Я не могу найти никакой документации для такого рода вещей, но Я видел это, например, в log4j , где вы можете динамически добавлять свойства ведения журнала для любого имени пакета, поэтому должна быть возможность, по крайней мере, получить эти ключи.
Я знаю, что могу сделать это иначе, например, с помощью сценария импорта data.sql
, однако в моем случае было бы очень идеально иметь это в формате одного файла свойств (или yaml).