1. 程式人生 > >spring boot filter 配置多個時,執行順序

spring boot filter 配置多個時,執行順序

spring boot 配置Filter過濾器 中簡單介紹了spring boot 中如何新增過濾器,有人問到如果配置多個怎麼控制,先經過哪個過濾器,後經過哪個過濾器。在web.xml中,我們知道,執行順序是誰在前邊執行誰。

在spring boot中的FilterRegistrationBean註冊過濾器的類中有個order屬性,

private int order = Ordered.LOWEST_PRECEDENCE;

細看原始碼可以知道,這個order的預設值是Integer.MAX_VALUE 也就是int的最大值,

spring boot 會按照order值的大小,從小到大的順序來依次過濾。

    /**
     * 配置過濾器
     * @return
     */
    @Bean
    public FilterRegistrationBean someFilterRegistration() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(sessionFilter());
        registration.addUrlPatterns("/*");
        registration.addInitParameter("paramName"
, "paramValue"); registration.setName("sessionFilter"); registration.setOrder(Integer.MAX_VALUE); return registration; }

再有一個過濾器的話,可以設定成 registration.setOrder(Integer.MAX_VALUE - 1)

spring boot也提供了註解的方式,例如

/**
     * 配置過濾器
     * @return
     */
    @Bean
    @Order(Integer.MAX_VALUE)
    public
FilterRegistrationBean someFilterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(sessionFilter()); registration.addUrlPatterns("/*"); registration.addInitParameter("paramName", "paramValue"); registration.setName("sessionFilter"); return registration; }

上面兩種方法都行,想用那種看你喜歡。。。。

相關推薦

spring boot filter 配置執行順序

在 spring boot 配置Filter過濾器 中簡單介紹了spring boot 中如何新增過濾器,有人問到如果配置多個怎麼控制,先經過哪個過濾器,後經過哪個過濾器。在web.xml中,我們知道,執行順序是誰在前邊執行誰。 在spring boot中的F

spring boot專案配置環境

比如我的spring boot專案有開發(dev)、測試(test)、生產(prod)三個環境,需要有三套對應的配置檔案。如下 在專案裡application.yml為主配置檔案,另外三個分別對應

spring boot配置DispatcherServlet

spring boot為我們自動配置了一個開箱即用的DispatcherServlet,對映路徑為‘/’,但是如果專案中有多個服務,為了對不同服務進行不同的配置管理,需要對不同服務設定不同的上下文,比如開啟一個DispatcherServlet專門用於rest服務。 傳統springMVC專案 在傳統的spr

spring+activemq配置生產者消費者併發處理訊息

先貼配置 <?xml version="1.0" encoding="UTF-8"?>    <beans xmlns="http://www.springframework.org/schema/beans"   xmlns:xsi="http://w

Spring Boot + JPA(hibernate 5) 開發數據庫表名大小寫問題

hibernate mysql spring boot 大小寫 這幾天在用spring boot開發項目, 在開發的過程中遇到一個問題hibernate在執行sql時,總會提示表不存在。尋找之後發現, 建表時,表統一采用了大寫。hibernate會把大寫統一轉換成小寫。且 mysql在 lin

spring security 中配置 AuthenticationManager

基於spring-security4.2.x和security-oauth2.3.x 在使用Security配置Oauth2.0的時候需要多個authenticationManager來管理來自不同方向的認證管理,比如一個clientAuthenticationManager用來認證client

一個Filter配置url-pattern

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

一個頁面有script標籤執行順序

JavaScript直譯器在執行指令碼時,是按塊執行的。通俗地說,就是瀏覽器在解析HTML文件流時,如果遇到一個script標籤,則JavaScript直譯器會等到這個程式碼塊都載入完成後,先對程式碼塊進行預編譯,然後再執行。執行完畢後,瀏覽器會繼續解析下面的HTML文件流,同時JavaSc

Spring Boot 整合Mybatis非startermapper一直無法注入解決

本來呢,直接使用mybatis-spring-boot-starter還是挺好的,但是我們系統比較複雜,有多個數據源,其中一個平臺自己的資料來源,另外一些是動態配置出來的,兩者完全沒有關係。所以直接使用mybatis-spring-boot-starter就很麻煩了,會報下列錯誤: Caused by

filter配置url-pattern和排除個別servlet

                最近做專案遇到一個Filter需要配置多個url-pattern,上網查了下資料,經測試,現總結下

web.xml中一個filter配置url-pattern

需要在filter標籤後新增多個filter-mapping標籤,一個url-pattern就對應一個filter-mapping標籤,不能直接把多個url-pattern配置到同一個filter-mapping標籤裡,也不能直接把多個url直接配置到一個url-pattern標籤裡。 正確地配置方式如下所

Tomcat中配置網站站點的方法

最近想要在tomcat中部署多個網站,但是不知道怎麼配置,通過查詢資料和摸索,發現要實現這一點其實還是很簡單的。 如何利用Tomcat建立多個Web應用 呢? 重點就是:server.xml檔案的配置 找到server.xml配置檔案中的<Host>節點,通過增加h

【策略模式】如何結合spring實現一個介面實現如何解決介面選擇問題

1、首先把對映關係放在spring-mvc.xml配置檔案 <bean id="dispatcher" class="com.ms.kai.bms.dispatcher.Abstrac

一臺電腦上配置tomcat詳解

  在伺服器上配置了多個tomcat,每個tomcat下的專案都獨立執行。 我這邊是一臺機器上配置5個tomcat,一個簡單的搭建教程和大家分享! 1.拷貝出多個tomcat目錄,需要把tomcat的名稱改為不相同的。 2.環境變數配置。 我的電腦-》右鍵屬性-》高階

Spring boot 梳理 - 配置eclipse整合maven並開發Spring boot hello

@RestController @EnableAutoConfiguration public class App { @RequestMapping("/hello") public HashMap<String,String> hello(

第十四篇:Spring Boot+MyBatis配置資料來源

說起多資料來源,一般都來用來解決主從模式或者業務比較複雜需要連線不同的分庫來支援業務。本篇文章主要講解後者的模式,利用AOP動態切換來達到專案訪問不同資料來源。 構架工程 建立一個springboot工程,在其pom檔案加入: <dependency> &

如何使一個Spring Boot專案啟動例項

應用場景:使用Ribbon的@LoadBalanced註解來實現服務端的負載均衡消費Spring Boot專案啟動多個工程例項,即一個專案,修改一個埠啟動一個服務,修改完配置檔案(application.properties、application.yml)即可,按照如下操作

Tomcat配置Service同名的應用執行在一個tomcat下

網站專案中有時候會碰到,每個網站一個網站後臺程式,偏偏因為某種原因,這後臺程式的名稱還是一樣的,比如都叫 app.war,這樣如果有2個或以上網站需要用各自的app.war,那麼就需要安裝多個tomcat,資源浪費比較大。也不好管理。有沒有一種可能,將這幾個app.war放到

JAVA WEB:一個Filter配置url-pattern

最近做專案遇到一個Filter需要配置多個url-pattern,上網查了下資料,經測試,現總結下  一、完全錯誤的方式  Java程式碼 <filter>       <filter-name>authority</filter-n

一臺電腦配置tomcat,同時執行互不衝突

當第一個tomcat啟動後,後面tomcat的server.xml中的埠不管怎麼改,仍然會報埠衝突。後來在dos下執行才發現所有的tomcat都會去找CATALINA_HOME和CATALINA_BASE這兩個環境變數,因此步驟如下: 1.使用壓縮版的tom