有人可以提供一些想法,从属性文件中注入(inject)所有动态键和值,并将其作为 Map
传递给 DBConstants
类,使用 Setter Injection with Collection。
key 是事先不知道的,可能会有所不同。
// Example Property File that stores all db related details
// db.properties
db.username.admin=root
db.password.admin=password12
db.username.user=admin
db.password.user=password13
DBConstants
包含需要注入(inject)所有键和值的映射 dbConstants。
请提供 bean 定义以将所有键和值注入(inject) Map dbConstants。
public class DBConstants {
private Map<String,String> dbConstants;
public Map<String, String> getDbConstants() {
return dbConstants;
}
public void setDbConstants(Map<String, String> dbConstants) {
this.dbConstants = dbConstants;
}
}
最佳答案
您可以使用您的属性文件创建 PropertiesFactoryBean,然后在您希望将其用作 map 的位置注入(inject) @Resource 注释。
@Bean(name = "myProperties")
public static PropertiesFactoryBean mapper() {
PropertiesFactoryBean bean = new PropertiesFactoryBean();
bean.setLocation(new ClassPathResource("prop_file_name.properties"));
return bean;
}
用法:
@Resource(name = "myProperties")
private Map<String, String> myProperties;
关于java - 在 Spring 中将属性文件中的所有键和值作为 Map 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42179664/