【SpringBoot】04.SpringBoot整合Filter的兩種方式
阿新 • • 發佈:2020-08-19
SpringBoot整合Filter過濾器的兩種方式:
1.通過掃描註解完成Filter元件註冊
-
建立一個類,實現Filter介面,實現doFilter()方法
-
在該類使用註解@WebFilter,設定filterName與urlPatterns
-
在doFilter中編寫程式碼
-
編寫啟動類:增加註解@ServletComponentScan
/** * SpringBoot整合Filter 方式一 */ //@WebFilter(filterName="FirstFilter" , urlPatterns= {"*.do","*.jsp"}) @WebFilter(filterName="FirstFilter" , urlPatterns= "/first") public class FirstFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("進入Filter"); chain.doFilter(request, response); System.out.println("離開Filter"); } }
@SpringBootApplication
@ServletComponentScan
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
urlPatterns 是陣列型別的,可以攔截多個 例如:urlPatterns= {".do",".jsp"}
2.通過方法完成Filter元件註冊
- 建立一個類,實現Filter介面,實現doFilter()方法
- 編寫啟動類
- 新增一個方法,返回值必須是FilterRegistrationBean
- 建立FilterRegistrationBean物件,傳入例項化的Filter物件
- 新增Url,bean.addUrlPatterns();
- 返回FilterRegistrationBean物件
- 在此方法上增加@Bean的註解
- 新增一個方法,返回值必須是FilterRegistrationBean
/** * 註冊Filter */ @Bean public FilterRegistrationBean getFilterRegistrationBean() { FilterRegistrationBean bean = new FilterRegistrationBean(new SecondFilter()); //bean.addUrlPatterns(new String[] {"*.do","*.jsp"}); bean.addUrlPatterns("/second"); return bean; }