1、背景

我们在使用@ConfigurationProperties(prefix = "system") 读取yml配置文件过程中会遇到读取yml文件中列表。如:yml文件设置访问白名单,Config里面使用List集合接收。方法比较简单。整理如下


2、实现过程(“-”)

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("存在白名单内:{}",url);

               return true;

           }

       }

       return false;

   }