SpringBoot中如何配置使用过滤器(Filter)呢?
下文笔者讲述springboot中配置过滤器的方法分享,如下所示
实现思路: 1.定义filter 2.将filter注册进springBoot的容器中即可例:
定义实现Filter接口
package com.java265.filter; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class MySelfFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest)servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; response.addHeader("Access-Control-Allow-Origin","http://localhost:7001");// * 允许所有域名跨域访问 response.addHeader("Access-Control-Allow-Methods","GET");// * 允许所有请求方法 // 是否让请求通过过滤器。这行代码不能漏掉。如果漏掉请求会访问不到URL filterChain.doFilter(request,response); } @Override public void destroy() { } }
注册Filter到springboot中
package com.java265; import com.java265.filter.MySelfFilter; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ImportResource; @SpringBootApplication @ImportResource({ "classpath:applicationContext.xml" }) public class StudySpringBootApplication { public static void main(String[] args) throws Exception { SpringApplication.run(StudySpringBootApplication.class, args); } @Bean public FilterRegistrationBean registFilter(){ FilterRegistrationBean bean = new FilterRegistrationBean(); // 定义filter的过滤路径规则。 bean.addUrlPatterns("/*"); bean.setFilter(new MySelfFilter()); return bean; } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。