欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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值。