• Spring/SpringBoot/SpringCloud过滤器配置(采用Bean方式配置,而非原生Servlet过滤器实现)


    说明:

    1.  为了代码简洁, 使用了了Java8的lambda表达式,如果不想用的话可以使用匿名对象等方式更改(lambda表达式实际上也是对象)
    2. 可以使用该方式配置多个过滤器,但是需要给每一个Bean命名
    3. 与Servlet原生过滤器相比有好处也有不足,好处在于使用更灵活,更容易掌握,缺点是没有init初始化以等方法(可能有,但是我不知道)
    4. 如有不足欢迎留言指正

    示例代码:

    @Configuration
    public class FilterBean {
    
      // 支持Spring注解注入
      @Value("${xxx.xxx}")
      String secret;
    
      /**
       * 可能有多个Filter,所有建议都给名字,否则会冲突
       *
       * @return
       */
      @Bean("filter1")
      public FilterRegistrationBean filter1() {
        FilterRegistrationBean<Filter> registrationBean = new FilterRegistrationBean<>();
    registrationBean.setFilter((request, response, chain)
    -> {
    request.setCharacterEncoding(
    "utf8");
    response.setCharacterEncoding(
    "utf8");
    // TODO 过滤器实现主体部分
    chain.doFilter(request, response);
    });
    // 过滤器过滤路径配置
    registrationBean.addUrlPatterns("/*");
    // 可省略
    // registrationBean.setName("securityFilterRegistration1");
    // 过滤器执行顺序(可省略)
    registrationBean.setOrder(2);
    return registrationBean;
    }
    }
  • 相关阅读:
    Linux终端基本命令
    Markdown基本语法
    谷歌浏览器解决”此Flash Player与您的地区不相容“
    谷歌浏览器不可以默认允许flash的解决方法
    MySQL8.0登陆方式
    谷歌浏览器安装位置自定义
    java生成六位验证码
    对AJAX的理解
    对servlet请求的理解
    js60秒倒计时
  • 原文地址:https://www.cnblogs.com/laeni/p/10653731.html
Copyright © 2020-2023  润新知