java过滤器api_springboot集成过滤器
封裝自定義接口filter
包含兩個(gè)方法,第一個(gè)過濾的路徑數(shù)組,第二個(gè)為過濾器執(zhí)行的順序.spring boot 會(huì)按照order值的大小,從小到大的順序來(lái)依次過濾。
package com.theeternity.common.baseFilter;
import javax.servlet.Filter;
/**
* @program: ApiBoot
* @description: 封裝Filter
* @author: TheEternity Zhang
* @create: 2019-02-17 13:08
*/
public interface MappingFilter extends Filter {
String[] addUrlPatterns();
int order();
}
書寫具體的filter
package com.theeternity.beans.filterConfig;
import com.theeternity.common.baseFilter.MappingFilter;
import javax.servlet.*;
import javax.servlet.FilterConfig;
import java.io.IOException;
/**
* @program: ApiBoot
* @description: 權(quán)限過濾器
* @author: TheEternity Zhang
* @create: 2019-02-17 13:14
*/
public class AuthFilter implements MappingFilter {
@Override
public String[] addUrlPatterns() {
return new String[]{"/*"};
}
@Override
public int order() {
return 0;
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//具體邏輯
}
@Override
public void destroy() {
}
}
注入bean到容器
package com.theeternity.beans.filterConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @program: ApiBoot
* @description: 注冊(cè)過濾器
* @author: TheEternity Zhang
* @create: 2019-02-17 13:10
*/
@Configuration
public class FilterConfig {
private Logger logger= LoggerFactory.getLogger(FilterConfig.class);
@Bean
public FilterRegistrationBean registFilter() {
FilterRegistrationBean registration = new FilterRegistrationBean();
AuthFilter authFilter=new AuthFilter();
registration.setFilter(authFilter);
registration.addUrlPatterns(authFilter.addUrlPatterns());
registration.setOrder(authFilter.order());
registration.setName("AuthFilter");
return registration;
}
}
總結(jié)
以上是生活随笔為你收集整理的java过滤器api_springboot集成过滤器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: m200mkiii+拆解(m200mki
- 下一篇: XP系统怎么打开资源管理器的七种方法