本篇教程適用於配置文件一級下有多個二級或三級時,如何在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()