Springboot项目获取配置文件中的Map和List值
程序员文章站
2024-02-18 12:07:46
...
我们在写项目的时候,有时候需要在配置文件中配置有些特性化配置,下面为大家介绍一下Map类型的获取。
我们都知道Map类型的数据是<Key,Value>形式的,那么也就是说,我们获取到配置文件中的key,那么对应的value值就会被拿到。
获取对应的Map值:
首先引入依赖:
<!--增加读取配置文件中的map -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
写一个配置类:config
@Configuration // 标识这是一个配置类
@ConfigurationProperties(prefix = "data") // 读取前缀为 data 的内容
@PropertySource(value = { "classpath:application-prod.properties" }, encoding = "utf-8")
public class MapConfig {
public Map<String, String> sxyd = new HashMap<String, String>();
public Map<String, String> getSxyd() {
return sxyd;
}
public void setSxyd(Map<String, String> sxyd) {
this.sxyd = sxyd;
}
}
@Configuration // 标识这是一个配置类
@ConfigurationProperties(prefix = “data”) // 读取前缀为 data 的内容
@PropertySource(value = { “classpath:application-prod.properties” }, encoding = “utf-8”)
注意:@ConfigurationProperties(prefix = “data”),配置的时候前缀必须为data否则扫描不到!(亲测)
@PropertySource扫描的配置文件
这几个注解不理解的可以去看官方文档
/**
* data.sxyd.name
* 这里map名需要和application.properties中的参数一致
**/
接下来就是在配置文件application-prod.properties中写map了
第一种
data.sxyd.-ni=1
data.sxyd.-wo=2
data.sxyd.-ta=3
data.sxyd.-tamen=4
data.sxyd.-women=5
第二种
data.sxyd[ni]=1
data.sxyd[wo]=2
data.sxyd[ta]=3
data.sxyd[tamen]=4
Map<String, String> sxyd = mapConfig.getSxyd();
通过我们写的配置类进行获取对应的key值,value值就可以获取到了。
获取对应的list值:
/**
* data.list
* 这里list名需要和application.properties中的参数一致
*/
private List<String> list = new ArrayList<>();
**/
public List<String> getList() {
return list;
}
public void setList(List<String> list) {
this.list = list;
}
第一种
data.list[0]=zxc
data.list[1]=zxcv
data.list[2]=zxcvb
第二种
data.list=zxc,zxcv,zxcvb
List<String> list = mapConfig.getList();
通过我们写的配置类进行获取对应的list值。