import org.apache.catalina.filters.RemoteIpFilter; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class ConfigurationFilter { @Bean public RemoteIpFilter remoteIpFilter() { return new RemoteIpFilter(); } @Bean //方法实例化并返回一个对象 public FilterRegistrationBean<MyFilter> testFilterRegistration() { FilterRegistrationBean<MyFilter> registration = new FilterRegistrationBean<MyFilter>(); registration.setFilter(new MyFilter()); registration.addUrlPatterns("/*"); registration.addInitParameter("name", "jack"); registration.setName("MyFilter"); registration.setOrder(1); return registration; } public class MyFilter implements Filter { @Override public void destroy() { } @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest)arg0; System.out.println("This is my filter, uri:" + request.getRequestURI()); arg2.doFilter(arg0, arg1); } @Override public void init(FilterConfig arg0) throws ServletException { } } }
如何获取FilterRegistrationBean
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloWorldController { @Autowired //自动装配 FilterRegistrationBean<?> registration; @GetMapping("/getName") public Map<String, String> getName() { Map<String, String> initPara = registration.getInitParameters(); return initPara; } }