其他分享
首页 > 其他分享> > springboot的两种filter创建方式

springboot的两种filter创建方式

作者:互联网

springboot创建两种filter的方式和servlet的两种方式差不多,第一步都是创建一个MyFilter类。

package com.example.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
//这句注释在第二种方法里不需要 @WebFilter(urlPatterns = "/user/*")//这里是指所有的user子目录下的指向都会触发过滤器 public class MyFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("----------请求已进入过滤器---------"); chain.doFilter(request,response); } }

在主函数入口前加上@ServletComponentScan(basePackages = "com.example.filter"),这个过滤器就可以使用了。

这里是加入了control类来指定访问路径。

package com.example.config.control;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class MyController {

    @RequestMapping("/user/hehe")
    public @ResponseBody Object say(){
        return "hehe";
    }

    @RequestMapping("/hehe")
    public @ResponseBody Object hehe(){
        return "hehe again";
    }
}

第二种是创建一个MyFilter之后再创建一个MyController类控制访问,比如现在要访问/user/hehe这个路径,或者是访问/hehe这个路径。

package com.example.config;

import com.example.filter.MyFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class FilterConfig {

    @Bean
    public FilterRegistrationBean MyRegistration(){
        FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean(new MyFilter());
        filterRegistrationBean.addUrlPatterns("/user/*");
        return filterRegistrationBean;
    }
}

这里只需要一个@Configuration注释就可以了,这里的@Configuration相当于一个xml配置文件。

@Bean相当于配置 文件里的<beans><bean id="  " class=" "/></beans>

标签:MyFilter,springboot,创建,springframework,filter,org,import,hehe,public
来源: https://www.cnblogs.com/gangliao81/p/16331287.html