Spring将特定属性加载到属性对象中

时间:2018-04-17 16:34:26

标签: spring properties

我的application.properties包含以下属性:

db.username = ...
db.password = ...
db.timeout = ...

rest.client.username = ...
rest.client.password = ...
rest.client.timeout = ...

我想只将其余客户端的属性加载到配置

@Configuration
public class Config {

....

private Properties restProperties; // << here should go 3 properties with prefix rest.client

}

在基于Java的配置中有什么办法吗?

1 个答案:

答案 0 :(得分:0)

如果您将所有rest.client属性移动到他们自己的属性文件中(例如restclient.properies),则可以使用PropertiesLoaderUtils

Resource resource = new ClassPathResource("/restclient.properties");
Properties props = PropertiesLoaderUtils.loadProperties(resource);

或者,您可以使用@ConfigurationProperties,如here所示,但它不是Properties对象,而是您自己定义的对象。

另外,我觉得值得一提的是你可以添加

@Autowired
private Environment env;

并使用

访问任何属性
env.getProperty("your.property.here")