和servlet差不多,springboot使用Filter也有两种方法
一:
package com.lgt.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
@WebFilter("/*")
public class MyFilter implements Filter{
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
System.out.println("进入myFilter");
arg2.doFilter(arg0, arg1);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
}
1.完成接口
2.添加@WebFilter("/*")注解
3.添加包扫描;@ServletComponentScan(basePackages={"com.lgt.filter","om.lgt.servlet"})
二:
不需要注解;
可以和servletx写在一起
package com.lgt.filter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyFilterConfig {
@Bean
public FilterRegistrationBean myFilterRegistrationBean(){
FilterRegistrationBean myFilter = new FilterRegistrationBean<>(new MyFilter());
myFilter.addUrlPatterns("/*");
return myFilter;
}
}