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

Springmvc國際化自動(dòng)配置代碼實(shí)現(xiàn)

 更新時(shí)間:2020年04月10日 09:33:30   作者:TomDu  
這篇文章主要介紹了Springmvc國際化自動(dòng)配置代碼實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

在 springmvc 中通過 LocalResover 獲取區(qū)域信息對(duì)象 Local(對(duì)語言信息、國家代碼等的封裝),進(jìn)行國際化配置,在 springboot 為我們提供了默認(rèn)的區(qū)域信息解析器

@Configuration(
  proxyBeanMethods = false
)
@ConditionalOnWebApplication(
  type = Type.SERVLET
)
@ConditionalOnClass({Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class})
@ConditionalOnMissingBean({WebMvcConfigurationSupport.class})
@AutoConfigureOrder(-2147483638)
@AutoConfigureAfter({DispatcherServletAutoConfiguration.class, TaskExecutionAutoConfiguration.class, ValidationAutoConfiguration.class})
public class WebMvcAutoConfiguration {
  public static final String DEFAULT_PREFIX = "";
  public static final String DEFAULT_SUFFIX = "";
  private static final String[] SERVLET_LOCATIONS = new String[]{"/"};
 
    @Bean
    @ConditionalOnMissingBean  //容器中沒有 LocaleResolver 時(shí)
    @ConditionalOnProperty(
      prefix = "spring.mvc",
      name = {"locale"}
    )
    public LocaleResolver localeResolver() {        //如果屬性中指定用固定的就用固定的 FixedLocaleResolver 區(qū)域化信息解析器
      if (this.mvcProperties.getLocaleResolver() == org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties.LocaleResolver.FIXED) {
        return new FixedLocaleResolver(this.mvcProperties.getLocale());
      } else {          //否則使用 AcceptHeaderLocaleResolver 區(qū)域化信息解析器
        AcceptHeaderLocaleResolver localeResolver = new AcceptHeaderLocaleResolver();
        localeResolver.setDefaultLocale(this.mvcProperties.getLocale());
        return localeResolver;
      }
    }

AcceptHeaderLocaleResolver 在 request 請(qǐng)求頭中獲取到區(qū)域信息

public class AcceptHeaderLocaleResolver implements LocaleResolver {
  private final List<Locale> supportedLocales = new ArrayList(4);
 
  public Locale resolveLocale(HttpServletRequest request) {
    Locale defaultLocale = this.getDefaultLocale();
    if (defaultLocale != null && request.getHeader("Accept-Language") == null) {
      return defaultLocale;
    } else {
      Locale requestLocale = request.getLocale();
      List<Locale> supportedLocales = this.getSupportedLocales();
      if (!supportedLocales.isEmpty() && !supportedLocales.contains(requestLocale)) {
        Locale supportedLocale = this.findSupportedLocale(request, supportedLocales);
        if (supportedLocale != null) {
          return supportedLocale;
        } else {
          return defaultLocale != null ? defaultLocale : requestLocale;
        }
      } else {
        return requestLocale;
      }
    }
  }

默認(rèn)就是更具請(qǐng)求頭帶來的區(qū)域信息獲取 Local 進(jìn)行國際化

我們可以通過定義自己的區(qū)域化解析器生成區(qū)域化信息

public class MyLocaleResolver implements LocaleResolver {  
  @Override
  public Locale resolveLocale(HttpServletRequest request) {
    String l = request.getParameter("l");
    Locale locale = Locale.getDefault();
    if(!StringUtils.isEmpty(l)){
      String[] split = l.split("_");
      locale = new Locale(split[0],split[1]);
    }
    return locale;
  }
  @Override
  public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
  }
}
 
@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter {
  @Bean
  public LocaleResolver localeResolver(){
    return new MyLocaleResolver();
  }
}

量變引起質(zhì)變,這就是我所理解的因果。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳談Java中net.sf.json包關(guān)于JSON與對(duì)象互轉(zhuǎn)的坑

    詳談Java中net.sf.json包關(guān)于JSON與對(duì)象互轉(zhuǎn)的坑

    下面小編就為大家分享一篇Java中net.sf.json包關(guān)于JSON與對(duì)象互轉(zhuǎn)的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助
    2017-12-12
  • IntelliJ IDEA創(chuàng)建maven web項(xiàng)目的圖文步驟(IDEA新手適用)

    IntelliJ IDEA創(chuàng)建maven web項(xiàng)目的圖文步驟(IDEA新手適用)

    這篇文章主要介紹了IntelliJ IDEA創(chuàng)建maven web項(xiàng)目的圖文步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • java rocketmq--消息的產(chǎn)生(普通消息)

    java rocketmq--消息的產(chǎn)生(普通消息)

    這篇文章主要介紹了java rocketmq--消息的產(chǎn)生(普通消息),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2019-06-06
  • Java使用選擇排序法對(duì)數(shù)組排序?qū)崿F(xiàn)代碼

    Java使用選擇排序法對(duì)數(shù)組排序?qū)崿F(xiàn)代碼

    這篇文章主要介紹了Java使用選擇排序法對(duì)數(shù)組排序?qū)崿F(xiàn)代碼,需要的朋友可以參考下
    2014-02-02
  • elasticsearch數(shù)據(jù)信息索引操作action?support示例分析

    elasticsearch數(shù)據(jù)信息索引操作action?support示例分析

    這篇文章主要為大家介紹了elasticsearch數(shù)據(jù)信息索引操作action?support示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • java中List接口的方法詳解

    java中List接口的方法詳解

    這篇文章主要介紹了java中List接口的方法詳解,List接口是繼承Collection接口,所以Collection集合中有的方法,List集合也繼承過來,本文主要介紹一下list下的方法,需要的朋友可以參考下
    2023-10-10
  • Java將字符串轉(zhuǎn)化為數(shù)組的兩種方法

    Java將字符串轉(zhuǎn)化為數(shù)組的兩種方法

    Java中的String類是一種特殊的字符串,它可以被用于處理字符串,Java中的String類也可以將字符串轉(zhuǎn)換為數(shù)組,下面這篇文章主要給大家介紹了關(guān)于Java將字符串轉(zhuǎn)化為數(shù)組的兩種方法,需要的朋友可以參考下
    2023-05-05
  • maven?scope?provided和runtime的例子說明

    maven?scope?provided和runtime的例子說明

    這篇文章主要介紹了maven?scope?provided和runtime的例子說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • IDEA不編譯除了.java之外的文件的解決辦法(推薦)

    IDEA不編譯除了.java之外的文件的解決辦法(推薦)

    這篇文章主要介紹了IDEA不編譯除了.java之外的文件的解決辦法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • java代碼之謎運(yùn)算符篇

    java代碼之謎運(yùn)算符篇

    從最簡單的運(yùn)算符加號(hào)(+)說起,加號(hào)(+)是個(gè)二元運(yùn)算符——也就是說,加號(hào)只把兩個(gè)數(shù)聯(lián)接起來,從來不把第三個(gè)或者更多的聯(lián)接起來
    2012-11-11

最新評(píng)論

延边| 桂阳县| 武威市| 彩票| 梓潼县| 邢台县| 聂荣县| 玉环县| 革吉县| 扎囊县| 永泰县| 台中县| 广安市| 诸暨市| 祁连县| 江都市| 商河县| 阳朔县| 巩义市| 外汇| 陈巴尔虎旗| 上高县| 巩义市| 龙游县| 恩平市| 古浪县| 黄平县| 丰城市| 屏山县| 宜兴市| 灵寿县| 东莞市| 鲁甸县| 金川县| 和龙市| 手机| 绥阳县| 双鸭山市| 茶陵县| 旬阳县| 锦州市|