SpringBoot中使用Map类型来表示properties配置文件中的数据

这里我只介绍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更适合单个集合使用

配置类的形式更适合多个集合使用,自己估量吧

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值