我有一些.yml文件,想要在应用程序启动时加载所有文件。我希望将它们加载到Some bean对象中。之后,我应该能够在应用程序中的任何地方访问yml值。有可能吗?
下面是yml。
Country:
-
CountryName: Afghanistan
CountryCode: AFG
CurrencyName: Afghan afghani
CurrencyCode: AFN
Region: Asia
SubRegion: Southern Asia
LanguageName: Pashto
LanguageCode: PUS
PerCapitaRank: 170
-
CountryName: Åland Islands
CountryCode: ALA
CurrencyName: Euro
CurrencyCode: EUR
Region: Europe
SubRegion: Northern Europe
LanguageName: Swedish
LanguageCode: SWE
PerCapitaRank:
答案 0 :(得分:2)
是的,您可以使用@ConfigurationProperties(prefix = "country")
link1和link2批注将所有属性加载到bean类中,因为spring创建了bean,因此您可以在所需位置自动装配该bean
@Configuration
@ConfigurationProperties(prefix = "country")
public class countryListConfig {
private List<countryList> list;
public List<countryList> getList() {
return list;
}
public void setList(List<countryList> list) {
this.list = list;
}
public static class countryList {
private String CountryName;
private String CountryCode;
// getters and setters
}
如果您想在应用程序中的任何位置使用这些属性,则应将它们声明为静态,因为您不能直接通过yml文件使用setter机制自动装配静态变量
private static List<countryList> staticlist;
public void setList(List<countryList> list) {
staticlist = list;
}
或者您也可以将countryListConfig
bean自动连接到任何实用程序类中的静态引用,并在整个应用程序中使用该bean