这里我只介绍properties类型的配置文件中的写法。
1.首先我们使用@Value这个注解来解决
在application.properties文件中我们这样写
//a和b就是map中的key 001和002分别对应值
thirdparty.passphrase = {"a":"001","b":"002"}
在你需要使用的类中注入
//在你需要使用的类中注入
@Value("#{${thirdparty.passphrase}}")
Map<String, String> thirdpartys;
这里交代一下吧:@Value中的写法不要改,值就是你配置文件中写的值对应写上去就好
运行一下结果看下合不合您的口味:
2.使用配置类的形式获取
在application.properties文件中我们这样写
//a和b代表了key 003和004代表了对应的值
thirdparty.passphrase.a = 003
thirdparty.passphrase.b = 004
接着我们创建一个类如下:这里的@Data注解你可以不加但是你得加上get/set方法
这里解释一下:@ConfigurationProperties(prefix = "thirdparty")中thirdparty就是你配置文件中的前缀
而最需要注意的是:private Map passphrase = new HashMap();的名字一定要和你配置文件中的名字相对应否则你得出的一定是空
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Classname
* @Description TODO
* @Date 2020/10/10 10:48
* @Created by lyc
*/
@Data
@ConfigurationProperties(prefix = "thirdparty")
@Component
public class ThirdpartyProperties {
private Map passphrase = new HashMap();
public Map getPassphrase() {
return passphrase;
}
public void setPassphrase(Map passphrase) {
this.passphrase = passphrase;
}
}
再接着在你需要使用的类中注入上面创建的这个类
//注入配置类
@Resource
ThirdpartyProperties thirdpartyProperties;
//在方法中获取到配置类中的map
Map passphrase = thirdpartyProperties.getPassphrase();
两种方法各有好处
@Value更适合单个集合使用
配置类的形式更适合多个集合使用,自己估量吧