簡體   English   中英

在 Spring 中將屬性文件中的所有鍵和值作為 Map 注入

[英]Inject all keys and Values from property file as Map in Spring

有人可以提供一些想法來從屬性文件中注入所有動態鍵和值,並使用帶有集合的 Setter 注入將其作為Map傳遞給DBConstants類。

密鑰是事先不知道的,並且可能會有所不同。

// 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包含需要為其注入所有鍵和值的映射 dbConstants。

請提供 bean 定義以將所有鍵和值注入 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,然后在要用作地圖的位置添加@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;

您可以使用@Value

屬性文件:

dbConstants={key1:'value1',key2:'value2'}

Java代碼:

@Value("#{${dbConstants}}")
private Map<String,String> dbConstants;

你必須給空間它的樣子

hash.key = {indoor: 'reading', outdoor: 'fishing'}

正如我提到的,閱讀下面的地圖。

@Value("#{${hash.key}}")
private Map<String, String> hobbies;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM