本篇教程适用于配置文件一级下有多个二级或三级时,如何在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()