1、背景
我們在使用@ConfigurationProperties(prefix = "system") 讀取yml配置文件過程中會遇到讀取yml文件中列表。如:yml文件設(shè)置訪問白名單,Config里面使用List集合接收。方法比較簡單。整理如下
2、實現(xiàn)過程(“-”)
- yml文件 列表前都是‘ - ’ 加空格開頭
# 訪問白名單
system:
whiteList:
- /sso/auth/api
- /swagger-ui
- /webjars/springfox-swagger-ui/
- /swagger-resources
- /v2/api-docs
- /api/garmin/testRedis
- /api/aladdin/channel/
- Config配置文件使用list 接收
@Configuration
@ConfigurationProperties(prefix = "system")
public class TokenWhiteListConfig {
// 配置文件使用list接收
private List<String> whiteList;
public List<String> getWhiteList() {
return whiteList;
}
public void setWhiteList(List<String> whiteList) {
this.whiteList = whiteList;
}
- 過濾器處理地方
@Autowired
private TokenWhiteListConfig whiteListConfig;
// 檢驗白名單 減少日志輸出
private boolean chechWhiteList(String uri){
// log.info("請求路徑:{}",uri);
for(String url: whiteListConfig.getWhiteList()){
if(uri.contains(url)){
// log.info("存在白名單內(nèi):{}",url);
return true;
}
}
return false;
}