springboot yml对于list列表配置方式

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;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容