欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot中注冊(cè)過(guò)濾器的幾種實(shí)現(xiàn)方式

 更新時(shí)間:2024年01月17日 15:22:03   作者:張紫娃  
本文主要介紹了SpringBoot中注冊(cè)過(guò)濾器的幾種實(shí)現(xiàn)方式,主要介紹了三種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

概述

在Spring Boot中,可以通過(guò)配置來(lái)自定義應(yīng)用程序的過(guò)濾器。但是,Spring Boot默認(rèn)提供了一些常用的過(guò)濾器,可以直接使用而無(wú)需額外配置。下面就來(lái)介紹一下SpringBoot中注冊(cè)過(guò)濾器的幾種實(shí)現(xiàn)方式

1. 使用@WebFilter注解(適用于Servlet API項(xiàng)目)

import jakarta.servlet.annotation.WebFilter;

@WebFilter(urlPatterns = "/*") // 攔截所有請(qǐng)求
public class TokenFilter implements Filter {
    // 實(shí)現(xiàn)doFilter方法,添加過(guò)濾邏輯
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        // ... 過(guò)濾器邏輯
        chain.doFilter(request, response);
    }

    // 其他生命周期方法如init和destroy...
}

2. 使用Spring的FilterRegistrationBean(推薦)

import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class FilterConfig {
    @Bean
    public FilterRegistrationBean<TokenFilter> tokenFilterRegistration() {
        FilterRegistrationBean<TokenFilter> registration = new FilterRegistrationBean<>();
        registration.setFilter(new TokenFilter());
        // 設(shè)置攔截規(guī)則
        registration.addUrlPatterns("/*"); // 攔截所有請(qǐng)求
        // 可以設(shè)置過(guò)濾器名稱(chēng)、初始化參數(shù)等
        registration.setName("tokenFilter");
        // 設(shè)置過(guò)濾器執(zhí)行順序,默認(rèn)為0,數(shù)值越小優(yōu)先級(jí)越高
        registration.setOrder(1);
        return registration;
    }
}

// TokenFilter類(lèi)實(shí)現(xiàn)javax.servlet.Filter接口
public class TokenFilter implements Filter {
    // ...
}

3. 如果過(guò)濾器是Spring Bean,可以通過(guò)繼承GenericFilterBean

import org.springframework.web.filter.GenericFilterBean;

public class TokenFilter extends GenericFilterBean {
    // 實(shí)現(xiàn)doFilterInternal方法替代doFilter方法
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        // ... 過(guò)濾器邏輯
        chain.doFilter(request, response);
    }
}

// 注冊(cè)到Spring容器中
@Configuration
public class FilterConfig {

    @Bean
    public TokenFilter tokenFilter() {
        return new TokenFilter();
    }

    // 若需指定URL模式或排序,同樣可以使用FilterRegistrationBean
    @Bean
    public FilterRegistrationBean<TokenFilter> tokenFilterRegistration(TokenFilter tokenFilter) {
        FilterRegistrationBean<TokenFilter> registration = new FilterRegistrationBean<>(tokenFilter);
        registration.addUrlPatterns("/*");
        registration.setOrder(1);
        return registration;
    }
}

 到此這篇關(guān)于SpringBoot中注冊(cè)過(guò)濾器的幾種實(shí)現(xiàn)方式的文章就介紹到這了,更多相關(guān)SpringBoot 注冊(cè)過(guò)濾器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java程序員必須知道的5個(gè)JVM命令行標(biāo)志

    Java程序員必須知道的5個(gè)JVM命令行標(biāo)志

    這篇文章主要介紹了每個(gè)Java程序員必須知道的5個(gè)JVM命令行標(biāo)志,需要的朋友可以參考下
    2015-03-03
  • 淺析Java編程中枚舉類(lèi)型的定義與使用

    淺析Java編程中枚舉類(lèi)型的定義與使用

    這篇文章主要介紹了Java編程中枚舉類(lèi)型的定義與使用,簡(jiǎn)單講解了enum關(guān)鍵字與枚舉類(lèi)的用法,需要的朋友可以參考下
    2016-05-05
  • Java根據(jù)日期截取字符串的多種實(shí)現(xiàn)方法

    Java根據(jù)日期截取字符串的多種實(shí)現(xiàn)方法

    在實(shí)際開(kāi)發(fā)中,我們經(jīng)常會(huì)遇到需要根據(jù)日期來(lái)截取字符串的需求,例如從文件名中提取日期信息,Java 提供了多種方法來(lái)實(shí)現(xiàn)根據(jù)日期來(lái)截取字符串的功能,本文將給大家介紹了Java根據(jù)日期截取字符串的多種實(shí)現(xiàn)方法,需要的朋友可以參考下
    2024-11-11
  • spring聲明式事務(wù)@Transactional開(kāi)發(fā)常犯的幾個(gè)錯(cuò)誤及最新解決方案

    spring聲明式事務(wù)@Transactional開(kāi)發(fā)常犯的幾個(gè)錯(cuò)誤及最新解決方案

    使用聲明式事務(wù)@Transactional進(jìn)行事務(wù)一致性的管理,在開(kāi)發(fā)過(guò)程中,發(fā)現(xiàn)很多開(kāi)發(fā)同學(xué)都用錯(cuò)了spring聲明式事務(wù)@Transactional或使用不規(guī)范,導(dǎo)致出現(xiàn)各種事務(wù)問(wèn)題,這篇文章主要介紹了spring聲明式事務(wù)@Transactional開(kāi)發(fā)常犯的幾個(gè)錯(cuò)誤及解決辦法,需要的朋友可以參考下
    2024-02-02
  • 淺談@RequestParam(required = true)的誤區(qū)

    淺談@RequestParam(required = true)的誤區(qū)

    這篇文章主要介紹了@RequestParam(required = true)的誤區(qū),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • idea每次修改代碼都需要重新install的問(wèn)題

    idea每次修改代碼都需要重新install的問(wèn)題

    這篇文章主要介紹了idea每次修改代碼都需要重新install的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 詳解使用Maven開(kāi)發(fā)Web應(yīng)用詳細(xì)步驟

    詳解使用Maven開(kāi)發(fā)Web應(yīng)用詳細(xì)步驟

    這篇文章主要介紹了詳解使用Maven開(kāi)發(fā)Web應(yīng)用詳細(xì)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 解決springboot生成bean名稱(chēng)沖突(AnnotationBeanNameGenerator)

    解決springboot生成bean名稱(chēng)沖突(AnnotationBeanNameGenerator)

    這篇文章主要介紹了解決springboot生成bean名稱(chēng)沖突(AnnotationBeanNameGenerator),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 解決spring.thymeleaf.cache=false不起作用的問(wèn)題

    解決spring.thymeleaf.cache=false不起作用的問(wèn)題

    這篇文章主要介紹了解決spring.thymeleaf.cache=false不起作用的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • MVC+DAO設(shè)計(jì)模式下的設(shè)計(jì)流程詳解

    MVC+DAO設(shè)計(jì)模式下的設(shè)計(jì)流程詳解

    這篇文章主要介紹了MVC+DAO設(shè)計(jì)模式下的設(shè)計(jì)流程詳解,分別介紹了數(shù)據(jù)庫(kù)設(shè)計(jì)、設(shè)計(jì)符合java bean標(biāo)準(zhǔn)的entity類(lèi)、設(shè)計(jì)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的DAO接口等內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11

最新評(píng)論