springboot 学习笔记

最近项目上使用springboot2.0.接触了一些以前未接触到的springboot特性,在此做一下笔记:

  • springboot使用filter

         springboot以代码注册的方式实现filter,springboot利用FilterRegistrationBean来添加filter

        首先,先定义自己的filter 

@Component
public class TestFilter implements Filter {

    private  String usr;
    private String apple;
    private String orange;

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        usr=filterConfig.getInitParameter("usr");
        apple=filterConfig.getInitParameter("apple");
        filterConfig.getInitParameterNames();

        System.out.println("usr:"+usr);
        System.out.println("orange:"+orange);
        System.out.println("apple:"+apple);

        System.out.println("testfilter init");
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("usr:"+usr);
        System.out.println("orange:"+orange);
        System.out.println("apple:"+apple);

        System.out.println("testfilter do...");
        filterChain.doFilter(servletRequest,servletResponse);
    }

    @Override
    public void destroy() {
        System.out.println("testfilter destory...");
    }
}

  然后在某个configuration中把该filter加入到FilterRegistrationBean中

 

    @Bean
    public FilterRegistrationBean createTestFilter() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(testFilter);//加入到filter
        filterRegistrationBean.addUrlPatterns("/*");//设置filter拦截的url
        filterRegistrationBean.setName("test");//设置filter 的name
        Map<String, String> map = new HashMap<>();
      //  map.put("apple", "apple");
      //  map.put("orange", "orange");
        filterRegistrationBean.addInitParameter("usr", "test");
      //  filterRegistrationBean.setInitParameters(map);//不要和addInitParameter同时使用,否则usr会无法取到值
        filterRegistrationBean.addServletRegistrationBeans();
        filterRegistrationBean.setOrder(0);//设置filter调用顺序
        return filterRegistrationBean;
    }

 

转载于:https://my.oschina.net/u/1429362/blog/2990442

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值