真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringBoot配置過濾器的2種方式示例

前言

創(chuàng)新互聯(lián)公司"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機(jī)版的企業(yè)網(wǎng)站。實(shí)現(xiàn)跨屏營(yíng)銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動(dòng)網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營(yíng)銷需求!創(chuàng)新互聯(lián)公司具備承接各種類型的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作項(xiàng)目的能力。經(jīng)過10多年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評(píng)。

過濾器(Filter)是Servlet中常用的技術(shù),可以實(shí)現(xiàn)用戶在訪問某個(gè)目標(biāo)資源之前,對(duì)訪問的請(qǐng)求和響應(yīng)進(jìn)行攔截,常用的場(chǎng)景有登錄校驗(yàn)、權(quán)限控制、敏感詞過濾等,下面介紹下Spring Boot配置過濾器的兩種方式。

一、@WebFilter注解方式

使用@WebFilter注解為聲明當(dāng)前類為filter,第一個(gè)參數(shù)為該filter起一個(gè)名字,第二個(gè)參數(shù)為說明要攔截的請(qǐng)求地址,當(dāng)前類需要實(shí)現(xiàn)Filter接口,里面有三個(gè)方法,分別為過濾器初始化、過濾方法和過濾器銷毀。

@Slf4j
@WebFilter(filterName = "myFilter1", urlPatterns = "/*")
public class MyFilter1 implements Filter {
 @Override
 public void init(FilterConfig filterConfig) throws ServletException {
 log.info(filterConfig.getFilterName() + " init");
 }

 @Override
 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
 log.info("myFilter1 begin");
 try {
  log.info("業(yè)務(wù)方法執(zhí)行");
  chain.doFilter(request, response);
 } catch (Exception e) {
  log.error("error!", e);
 }
 log.info("myFilter1 end");
 }

 @Override
 public void destroy() {
 }
}

啟動(dòng)類添加@ServletComponentScan注解,@ServletComponentScan注解所掃描的包路徑必須包含該Filter,代碼如下:

@SpringBootApplication
@ServletComponentScan(basePackages = "com.example.demo.filter")
public class DemoApplication {

 public static void main(String[] args) {
 SpringApplication.run(DemoApplication.class, args);
 }
}

二、@Bean注解方式

新建MyFilter2.java類,不要加注解@WebFilter,代碼如下:

@Slf4j
public class MyFilter2 implements Filter {
 @Override
 public void init(FilterConfig filterConfig) throws ServletException {
 log.info(filterConfig.getFilterName() + " init");
 }

 @Override
 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
 log.info("myFilter2 begin");
 try {
  log.info("業(yè)務(wù)方法執(zhí)行");
  chain.doFilter(request, response);
 } catch (Exception e) {
  log.error("error!", e);
 }
 log.info("myFilter2 end");
 }

 @Override
 public void destroy() {
 }
}

新建配置類WebConfig.java,配置bean,代碼如下:

@Configuration
public class WebConfig {

 @Bean
 public FilterRegistrationBean testFilterRegistration() {
 FilterRegistrationBean registration = new FilterRegistrationBean(new MyFilter2());
 registration.addUrlPatterns("/test"); //
 registration.setName("myFilter2");
 return registration;
 }
}

三、查看運(yùn)行效果

項(xiàng)目啟動(dòng)后瀏覽器訪問http://localhost:8080/test,可以看到過濾器已生效,后臺(tái)打印日志如下:

[nio-8080-exec-1] com.example.demo.filter.MyFilter1        : myFilter1 begin
[nio-8080-exec-1] com.example.demo.filter.MyFilter1        : 業(yè)務(wù)方法執(zhí)行
[nio-8080-exec-1] com.example.demo.filter.MyFilter1        : myFilter1 end

到此Spring Boot配置過濾器的兩種方式已經(jīng)全部實(shí)現(xiàn),有問題歡迎留言溝通哦!

完整源碼地址: https://github.com/suisui2019/springboot-study

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。


標(biāo)題名稱:SpringBoot配置過濾器的2種方式示例
本文網(wǎng)址:http://weahome.cn/article/psedgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部