Hol*_*omi 5 java yaml spring-boot
如果我在application.yaml中有以下属性:
myPro:
prop1: prop1value
prop2: prop2value
....
Run Code Online (Sandbox Code Playgroud)
有没有办法将其加载到Java Properties对象中?
默认情况下,Spring已将所有这些应用程序属性放在其环境中,这是一个包装Properties,例如:
@Autowired
private Environment environment;
public void stuff() {
environment.getProperty("myPro.prop1");
environment.getProperty("myPro.prop2");
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您只想使用这些值,则可以始终使用@Value注释,例如:
@Value("${myPro.prop1}")
private String prop1;
@Value("${myPro.prop2}")
private String prop2;
Run Code Online (Sandbox Code Playgroud)
最后,如果你真的想要一个Properties只包含所有内容的对象myPro,你可以创建以下bean:
@ConfigurationProperties(prefix = "myPro")
@Bean
public Properties myProperties() {
return new Properties();
}
Run Code Online (Sandbox Code Playgroud)
现在您可以自动装配属性并使用它们:
@Autowired
@Qualifier("myProperties")
private Properties myProperties;
public void stuff() {
myProperties.getProperty("prop1");
myProperties.getProperty("prop2");
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您不一定要绑定它Properties,但您可以使用自定义POJO,只要它具有字段名prop1和另一个字段名prop2.
这三个选项也列在文档中:
可以使用
@Value注释将属性值直接注入到bean中,通过Spring的Environment抽象访问或通过绑定到结构化对象@ConfigurationProperties.
| 归档时间: |
|
| 查看次数: |
14220 次 |
| 最近记录: |