最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot的@GetMapping路徑匹配規(guī)則、國(guó)際化詳細(xì)教程

 更新時(shí)間:2023年11月20日 10:12:22   作者:Bulut0907  
這篇文章主要介紹了SpringBoot的@GetMapping路徑匹配規(guī)則、國(guó)際化,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

1. @GetMapping路徑匹配規(guī)則

  • 默認(rèn)使用新版PathPatternParser進(jìn)行路徑匹配。性能比AntPathMatcher有6到8倍吞吐量提升,且降低30%~40%空間分配率兼容性方面。和antPathMatcher語(yǔ)法
  • 兼容(但不能匹配**在中間的情況,但能匹配**在末尾的情況)。可以使用spring.mvc.pathmatch.matching-strategy=ant_path_matcher進(jìn)行切換。默認(rèn)是path_pattern_parser。查看源碼如下:
package org.springframework.boot.autoconfigure.web.servlet;
......省略部分......
public class WebMvcAutoConfiguration {
    ......省略部分......
    public static class WebMvcAutoConfigurationAdapter implements WebMvcConfigurer, ServletContextAware {
        ......省略部分......
        public void configurePathMatch(PathMatchConfigurer configurer) {
            if (this.mvcProperties.getPathmatch().getMatchingStrategy() == MatchingStrategy.ANT_PATH_MATCHER) {
                configurer.setPathMatcher(new AntPathMatcher());
                this.dispatcherServletPath.ifAvailable((dispatcherPath) -> {
                    String servletUrlMapping = dispatcherPath.getServletUrlMapping();
                    if (servletUrlMapping.equals("/") && this.singleDispatcherServlet()) {
                        UrlPathHelper urlPathHelper = new UrlPathHelper();
                        urlPathHelper.setAlwaysUseFullPath(true);
                        configurer.setUrlPathHelper(urlPathHelper);
                    }
                });
            }
        }
        ......省略部分......
    }
    ......省略部分......
}

Ant風(fēng)格的路徑模式語(yǔ)法具有以下規(guī)則:

  • *:表示任意數(shù)量的字符
  • ?:表示任意一個(gè)字符
  • +: 表示1個(gè)或多個(gè)字符
  • **:表示任意數(shù)量的目錄
  • {}:表示一個(gè)命名的模式占位符
  • []:表示字符集合,例如[a-z]表示小寫字母

例如:/{type}/{id}.html匹配任意文件名為{id}.html,在任意命名的{type}目錄下的文件

注意:Ant 風(fēng)格的路徑模式語(yǔ)法中的特殊字符需要轉(zhuǎn)義,如:

  • 要匹配文件路徑中的星號(hào),則需要轉(zhuǎn)義為\\*
  • 要匹配文件路徑中的問(wèn)號(hào),則需要轉(zhuǎn)義為\\?

使用示例如下所示。訪問(wèn)http://localhost:8080/abc/bd/abcdef/1/2

    @GetMapping("/a*/b?/{p1:[a-f]+}/**")
    public String hello2(HttpServletRequest request, @PathVariable("p1") String path) {
        log.info("路徑變量p1: {}", path);    // 路徑變量p1: abcdef
        String uri = request.getRequestURI();
        return uri;    // /abc/bd/abcdef/1/2
    }

2. 國(guó)際化

國(guó)際化的自動(dòng)配置參照MessageSourceAutoConfiguration類

實(shí)現(xiàn)步驟:

  • 1.Spring Boot在資源路徑根目錄下查找messages資源綁定文件。文件名為:messages.properties
  • 2.多語(yǔ)言可以定義多個(gè)消息文件,命名為messages_區(qū)域代碼.properties。如:

messages.properties:默認(rèn)。文件內(nèi)容如下:

login=Login
sign=Sign-Up

messages_zh_CN.properties:中文環(huán)境。文件內(nèi)容如下:

login=登錄
sign=注冊(cè)

messages_en_US.properties:英語(yǔ)環(huán)境。文件內(nèi)容如下:

login=Login
sign=Sign-Up

3.在頁(yè)面中可以使用表達(dá)式#{}獲取國(guó)際化的配置項(xiàng)值。訪問(wèn)頁(yè)面會(huì)自動(dòng)根據(jù)瀏覽器的語(yǔ)言設(shè)置加載不同的messages消息配置文件

                <button type="button" class="btn btn-outline-light me-2" th:text="#{login}">Login</button>
                <button type="button" class="btn btn-warning" th:text="#{sign}">Sign-up</button>

4.在程序中可以自動(dòng)注入MessageSource組件,獲取國(guó)際化的配置項(xiàng)值

package com.hh.springboot3test.controller;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Locale;
@RestController
public class ControllerTest {
    @Autowired  // 國(guó)際化取消息用的組件
    MessageSource messageSource;
    @GetMapping("/global")
    public String global(HttpServletRequest request) {
        Locale locale = request.getLocale();
        // 利用代碼的方式獲取國(guó)際化配置文件中指定的配置項(xiàng)的值
        String login = messageSource.getMessage("login", null, locale);
        // 以rest方式返回?cái)?shù)據(jù)到頁(yè)面
        return login;
    }
}

5.application.properties國(guó)際化參數(shù)配置

spring.messages.basename=messages
spring.messages.encoding=UTF-8

到此這篇關(guān)于SpringBoot的@GetMapping路徑匹配規(guī)則、國(guó)際化的文章就介紹到這了,更多相關(guān)SpringBoot @GetMapping路徑匹配規(guī)則內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java多線程中的單例模式兩種實(shí)現(xiàn)方式

    Java多線程中的單例模式兩種實(shí)現(xiàn)方式

    這篇文章主要介紹了Java多線程中的單例模式兩種實(shí)現(xiàn)方式的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Maven之導(dǎo)入thymeleaf依賴飄紅問(wèn)題及解決

    Maven之導(dǎo)入thymeleaf依賴飄紅問(wèn)題及解決

    這篇文章主要介紹了Maven之導(dǎo)入thymeleaf依賴飄紅問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • JAVA遞歸與非遞歸實(shí)現(xiàn)斐波那契數(shù)列

    JAVA遞歸與非遞歸實(shí)現(xiàn)斐波那契數(shù)列

    這篇文章主要為大家詳細(xì)介紹了JAVA遞歸與非遞歸實(shí)現(xiàn)斐波那契數(shù)列,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • MybatisPlus批量保存原理及失效原因排查全過(guò)程

    MybatisPlus批量保存原理及失效原因排查全過(guò)程

    這篇文章主要介紹了MybatisPlus批量保存原理及失效原因排查全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Spring?Boot?中事務(wù)的用法示例詳解

    Spring?Boot?中事務(wù)的用法示例詳解

    本文詳細(xì)介紹了Spring Boot中事務(wù)管理的使用方法,包括事務(wù)的基本概念、配置、傳播行為、隔離級(jí)別以及回滾機(jī)制,通過(guò)使用@Transactional注解,可以方便地實(shí)現(xiàn)事務(wù)的控制,文章還討論了事務(wù)方法的可見(jiàn)性、自我調(diào)用問(wèn)題以及超時(shí)設(shè)置等注意事項(xiàng),感興趣的朋友一起看看吧
    2025-02-02
  • Java class文件格式之?dāng)?shù)據(jù)類型(二)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java class文件格式之?dāng)?shù)據(jù)類型(二)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了Java class文件格式之?dāng)?shù)據(jù)類型(二)的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 擴(kuò)展tk.mybatis的流式查詢功能實(shí)現(xiàn)

    擴(kuò)展tk.mybatis的流式查詢功能實(shí)現(xiàn)

    mybatis查詢默認(rèn)是一次獲取全部,如果數(shù)據(jù)過(guò)于龐大,就會(huì)導(dǎo)致OOM問(wèn)題,本文就介紹了tk.mybatis 流式查詢,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-12-12
  • Spring Cloud Config解決的問(wèn)題和案例

    Spring Cloud Config解決的問(wèn)題和案例

    Spring Cloud Config 是 Spring Cloud 套件中的一個(gè)工具,提供了在分布式系統(tǒng)中對(duì)外部化配置的服務(wù)器端和客戶端支持,本文介紹了Spring Cloud Config解決的問(wèn)題和案例,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2024-07-07
  • 淺談ThreadLocal為什么會(huì)內(nèi)存泄漏

    淺談ThreadLocal為什么會(huì)內(nèi)存泄漏

    這篇文章主要介紹了淺談ThreadLocal為什么會(huì)內(nèi)存泄漏,每個(gè)Thread內(nèi)部維護(hù)著一個(gè)ThreadLocalMap,它是一個(gè)Map,這個(gè)映射表的Key是一個(gè)弱引用,其實(shí)就是ThreadLocal本身,Value是真正存的線程變量Object,需要的朋友可以參考下
    2023-12-12
  • java8到j(luò)ava15的新功能簡(jiǎn)介

    java8到j(luò)ava15的新功能簡(jiǎn)介

    這篇文章主要介紹了java8到j(luò)ava15的新功能的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-12-12

最新評(píng)論

北京市| 墨竹工卡县| 昌宁县| 漾濞| 陕西省| 麻阳| 晋江市| 砚山县| 乌鲁木齐县| 常德市| 青田县| 扶沟县| 望都县| 浪卡子县| 永泰县| 马边| 雷州市| 义马市| 新龙县| 盐山县| 商丘市| 鲁甸县| 湛江市| 鄂尔多斯市| 公主岭市| 富平县| 扶沟县| 昭平县| 乌鲁木齐市| 屏南县| 苏尼特右旗| 东源县| 宣武区| 石阡县| 威海市| 普定县| 墨脱县| 安仁县| 乌什县| 柞水县| 吴旗县|