У меня есть Spring Application.yml в этом формате:
emailservice:
url: www.example.com
emailtemplates:
- language: english
resetthepassword:
from: abc
subject: def
templatename: efg
authenticationStart:
from: 123
subject: 456
templatename: 789
- language: viatnamese
resetthepassword:
from: aaa
subject: bbb
templatename: ccc
resetthepassword:
from: ddd
subject: eee
templatename: fff
И это сопоставляется с классами Java следующим образом:
@Configuration
@ConfigurationProperties("emailservice")
public class EmailServiceProperties {
private String url;
private List<EmailTemplate> emailTemplates;
// Getters, setters
}
public class EmailTemplate {
private String language;
private ResetThePassword resetthepassword;
private AuthenticationStart authenticationStart;
// getters and setters
}
public class ResetThePassword {
private String subject;
private String from;
private String templatename;
// getters and setters
}
public class AuthenticationStart {
private String subject;
private String from;
private String templatename;
// getters and setters
}
Мне было интересно, есть ли лучший способ для сопоставления свойств application.yml? Могу ли я загрузить все в переменную JSON и использовать @ConfigurationProperties?