Spring Boot 之FilterRegistrationBean --支持web Filter 排序的使用
来源:互联网 发布:mendeley mac 编辑:程序博客网 时间:2024/05/17 06:02
Spring Boot 之FilterRegistrationBean –支持web Filter 排序的使用
Spring 提供了FilterRegistrationBean类,此类提供setOrder方法,可以为filter设置排序值,
让spring在注册web filter之前排序后再依次注册。
写一个普通的filter:
- package com.sdcuike.practice.web2;
- import java.io.IOException;
- import javax.annotation.Resource;
- 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 org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import com.sdcuike.practice.config.CommonConfig;
- public class FilterDemo3 implements Filter {
- private final Logger log = LoggerFactory.getLogger(getClass());
- @Resource
- private CommonConfig commonConfig;
- @Override
- public void destroy() {
- log.info(”“ + getClass() + “ destroy”);
- }
- @Override
- public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {
- log.info(”“ + getClass() + “ doFilter ” + commonConfig);
- arg2.doFilter(arg0, arg1);
- }
- @Override
- public void init(FilterConfig arg0) throws ServletException {
- log.info(”“ + getClass() + “ init”);
- }
- }
package com.sdcuike.practice.web2;import java.io.IOException;import javax.annotation.Resource;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 org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.sdcuike.practice.config.CommonConfig;public class FilterDemo3 implements Filter { private final Logger log = LoggerFactory.getLogger(getClass()); @Resource private CommonConfig commonConfig; @Override public void destroy() { log.info("" + getClass() + " destroy"); } @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { log.info("" + getClass() + " doFilter " + commonConfig); arg2.doFilter(arg0, arg1); } @Override public void init(FilterConfig arg0) throws ServletException { log.info("" + getClass() + " init"); }}
配置如下:
- package com.sdcuike.practice.web2;
- import javax.servlet.Filter;
- import org.springframework.boot.web.servlet.FilterRegistrationBean;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import com.sdcuike.spring.extend.web.MvcConfigurerAdapter;
- /**
- * web 组件配置
- *
- * @author sdcuike
- * <p>
- * Created on 2017-02-10
- * <p>
- * 自定义注入,并支持依赖注入,组件排序
- */
- @Configuration
- public class WebComponent2Config {
- @Bean
- public FilterRegistrationBean filterDemo3Registration() {
- FilterRegistrationBean registration = new FilterRegistrationBean();
- registration.setFilter(filterDemo3());
- registration.addUrlPatterns(”/*”);
- registration.addInitParameter(”paramName”, “paramValue”);
- registration.setName(”filterDemo3”);
- registration.setOrder(6);
- return registration;
- }
- @Bean
- public FilterRegistrationBean filterDemo4Registration() {
- FilterRegistrationBean registration = new FilterRegistrationBean();
- registration.setFilter(filterDemo4());
- registration.addUrlPatterns(”/*”);
- registration.addInitParameter(”paramName”, “paramValue”);
- registration.setName(”filterDemo4”);
- registration.setOrder(7);
- return registration;
- }
- @Bean
- public Filter filterDemo3() {
- return new FilterDemo3();
- }
- @Bean
- public Filter filterDemo4() {
- return new FilterDemo4();
- }
- }
package com.sdcuike.practice.web2;import javax.servlet.Filter;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import com.sdcuike.spring.extend.web.MvcConfigurerAdapter;/** * web 组件配置 * * @author sdcuike * <p> * Created on 2017-02-10 * <p> * 自定义注入,并支持依赖注入,组件排序 */@Configurationpublic class WebComponent2Config { @Bean public FilterRegistrationBean filterDemo3Registration() { FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(filterDemo3()); registration.addUrlPatterns("/*"); registration.addInitParameter("paramName", "paramValue"); registration.setName("filterDemo3"); registration.setOrder(6); return registration; } @Bean public FilterRegistrationBean filterDemo4Registration() { FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(filterDemo4()); registration.addUrlPatterns("/*"); registration.addInitParameter("paramName", "paramValue"); registration.setName("filterDemo4"); registration.setOrder(7); return registration; } @Bean public Filter filterDemo3() { return new FilterDemo3(); } @Bean public Filter filterDemo4() { return new FilterDemo4(); }}
利用这种方式,我们可以对filter排序,可自行测试,源码:
https://github.com/sdcuike/spring-boot-practice/tree/master/src/main/java/com/sdcuike/practice/web2
<spring-boot.version>1.5.1.RELEASE</spring-boot.version>
阅读全文
0 0
- Spring Boot 之FilterRegistrationBean --支持web Filter 排序的使用
- Spring Boot 之FilterRegistrationBean --支持web Filter 排序的使用
- Spring Boot 之web Filter --支持排序的使用扩展
- Spring Boot 之web Filter --不支持排序的使用
- spring boot web filter的使用
- spring-boot使用Filter
- Spring Boot对Web开发的支持
- 使用Spring Boot开发Web项目(二)之添加HTTPS支持
- 使用Spring Boot开发Web项目(二)之添加HTTPS支持
- 使用Spring Boot开发Web项目(二)之添加HTTPS支持
- 使用Spring Boot开发Web项目(二)之添加HTTPS支持
- 使用Spring Boot开发Web项目(二)之添加HTTPS支持
- SpringBoot16-springboot的Web开发-Spring Boot的Thymeleaf支持
- spring web.xml之filter
- spring boot-使用Filter实现Header认证
- Spring Boot实战之Filter实现使用JWT进行接口认证 jwt(json web token) 用户发送按照约定,向服务端发送 Header、Payload 和 Signature,
- 10.8、spring boot的web应用——servlet、listener、filter的应用
- spring boot 之web浅谈
- 测试旅程badboy(1)
- RedHat Enterprise&nbs…
- nodejs之querystring模块
- Linux scp 使用详解
- CentOS 6.3安装Nginx 配…
- Spring Boot 之FilterRegistrationBean --支持web Filter 排序的使用
- 国土三调那些事儿
- webuploader使用详解
- yum搭建lnmp环境(CentOS6.3)
- yii使用gii为modules下的模块自动…
- 如何修改序列(Sequence)的初始值(S…
- APP测试工具选择
- jdk1.6+tomcat6 配置环境
- 2014年04月19日