springboot的yml配置文件里有多个参数的调用方式

本篇教程适用于配置文件一级下有多个二级或三级时,如何在service层不用通过多个@Value就能获取配置文件的参数

例如yml配置是这样的:

 如果service层要引用这些参数,用多个@Value(${xxx})未免太过繁琐,所以还可以通过以下方式实现

1.先写一个实体类,用来区别上图红框中的两个二级目录

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * @author sujing
 * @since 2020/2/28 11:15
 * 钉钉配置管理
 **/
@Data
@Configuration
@ConfigurationProperties(prefix = "dingtalk")
public class DingTalkProperties {

    //钉钉官方参数
    private DingTalkParam param = new DingTalkParam();

    //钉钉官方api
    private DingTalkApi api = new DingTalkApi();

}

2.分别定义两个实体类

import lombok.Data;

/**
 * @author sujing
 * @since 2020/2/28 11:15
 **/
@Data
public class DingTalkParam {

    /*app appKey*/
    private String appKey;

    /*app appSecret*/
    private String appSecret;

    /*企业 corpId*/
    private String corpId;
import lombok.Data;

/**
 * @author sujing
 * @since 2020/2/28 11:15
 **/
@Data
public class DingTalkApi {

    /*获取accessToken*/
    private String getAccessToken;

    /*获取用户信息*/
    private String getUserInfo;

    /*获取用户id*/
    private String getUserId;

    /*根据手机号获取userid*/
    private String getUserIdByMobile;

    /*获取企业员工人数*/
    private String getOrgUserCount;

    /*获取部门用户分页列表*/
    private String getListByPage;
}

3.如何注入?

直接在service实现类中通过@Resource注入

@Resource
private DingTalkProperties dingTalkProperties;

引用的时候直接通过“对象.参数”即可

dingTalkProperties.getApi().getxxx()
原文地址:https://www.cnblogs.com/supiaopiao/p/12377729.html