Springboot-静态类/属性读取配置文件内容

Springboot-静态类/属性读取配置文件内容

一、通过@Value方式读取配置文件内容

  1. 配置文件内容
dingtalk:
  msg:
    agentId: 123
    appKey: 456
  1. 新建一个Util来获取配置信息
public class DingDingPropUtil {

    private static String appId;

    private static String appKey;


    @Value("dingtalk.msg.appId")
    private String appIdProp;
    @Value("dingtalk.msg.appKey")
    private String appKeyProp;

    @PostConstruct
    public void getApiToken() {
       appId  = this.appIdProp;
       appKey = this.appKeyProp;
    }

    public static String getAppId(){
        return appId;
    }
    
    public static String getAppkey(){
        return appKey;
    }


    public static void initDingDingProp(DingDingProperties dingProperties){
        agentId = dingProperties.getAgentId();
        appKey = dingProperties.getAppKey();
        appSecret = dingProperties.getAppSecret();
    }

}
  1. 注意事项
    首选要在util里建一个static的变量,然后使用@Value获取yml配置文件的值。

    最后关键就是使用 @PostConstruct 熟悉将yml中配置的值赋给本地的变量,这样后面的静态方法就能使用了。

    注意util类使用了 @Component 属性注解了说明是需要在启动类 Application 启动的时候加载的,

    所以本地写一个方法调用 util 的时候是获取不到值的。

一、通过@Value方式读取配置文件内容

  1. 工具类增加静态变量初始化方法init
public class DingDingPropUtil {

    public static String agentId;

    public static String appKey;

    public static String appSecret;

    public static void initDingDingProp(DingDingProperties dingProperties){
        agentId = dingProperties.getAgentId();
        appKey = dingProperties.getAppKey();
        appSecret = dingProperties.getAppSecret();
    }
}
  1. 具体bean对象读取配置文件
@Component
@ConfigurationProperties(prefix = "dingtalk.msg")
public class DingDingProperties {

    public String agentId = "1111111";

    public String appKey = "ddddddd";

    public String appSecret = "123456";

    public String getAgentId() {
        return agentId;
    }

    public void setAgentId(String agentId) {
        this.agentId = agentId;
    }

    public String getAppKey() {
        return appKey;
    }

    public void setAppKey(String appKey) {
        this.appKey = appKey;
    }

    public String getAppSecret() {
        return appSecret;
    }

    public void setAppSecret(String appSecret) {
        this.appSecret = appSecret;
    }
}
  1. 增加代理类,代理类构造方法中调用工具类静态属性的初始化方法
@Component
public class DingDingPropProxy {

    public DingDingPropProxy(DingDingProperties dingProperties){
        DingDingPropUtil.initDingDingProp(dingProperties);
    }

}
  1. 使用
public static void main(String[] args) {

        System.out.println(DingDingPropUtil.appKey);
        System.out.println(DingDingPropUtil.agentId);
        
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值