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