クラス LocaleContextHolder

java.lang.ObjectSE
org.springframework.context.i18n.LocaleContextHolder

public final class LocaleContextHolder extends ObjectSE
LocaleContext インスタンスを現在のスレッドに関連付ける単純なホルダークラス。inheritable フラグが true に設定されている場合、LocaleContext は現在のスレッドによって生成された子スレッドによって継承されます。

必要に応じて、Spring の現在のロケールの主要ホルダーとして使用されます(例: MessageSourceAccessor)。DispatcherServlet は現在のロケールを自動的にここに公開します。他のアプリケーションも公開して、MessageSourceAccessor のようなクラスにそのロケールを自動的に使用させることができます。

導入:
1.2
作成者:
Juergen Hoeller, Nicholas Williams
関連事項:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    static LocaleSE
    現在のスレッドに関連付けられているロケールがある場合はそれを返し、そうでない場合はシステムのデフォルトのロケールを返します。
    static LocaleSE
    getLocale(LocaleContext localeContext)
    指定されたユーザーコンテキストに関連付けられているロケールがある場合はそれを返し、そうでない場合はシステムのデフォルトのロケールを返します。
    現在のスレッドに関連付けられている LocaleContext があれば、それを返します。
    static TimeZoneSE
    現在のスレッドに関連付けられている TimeZone(ある場合)、またはシステムのデフォルトの TimeZone(ある場合)を返します。
    static TimeZoneSE
    getTimeZone(LocaleContext localeContext)
    特定のユーザーコンテキストに関連付けられている TimeZone(存在する場合)、またはシステムのデフォルト TimeZone を返します。
    static void
    現在のスレッドの LocaleContext をリセットします。
    static void
    JVM 全体のデフォルトロケールの代わりに、フレームワークレベルで共有デフォルトロケールを設定します。
    static void
    JVM 全体のデフォルトタイムゾーンの代わりに、フレームワークレベルで共有デフォルトタイムゾーンを設定します。
    static void
    指定されたロケールを現在のスレッドに関連付け、すでに設定されている可能性のある TimeZone を保持します。
    static void
    setLocale(LocaleSE locale, boolean inheritable)
    指定されたロケールを現在のスレッドに関連付け、すでに設定されている可能性のある TimeZone を保持します。
    static void
    指定された LocaleContext を現在のスレッドに関連付けます。子スレッドの継承可能として公開しません
    static void
    setLocaleContext(LocaleContext localeContext, boolean inheritable)
    指定された LocaleContext を現在のスレッドに関連付けます。
    static void
    指定された TimeZone を現在のスレッドに関連付け、すでに設定されている可能性のあるロケールを保持します。
    static void
    setTimeZone(TimeZoneSE timeZone, boolean inheritable)
    指定された TimeZone を現在のスレッドに関連付け、すでに設定されている可能性のあるロケールを保持します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • メソッドの詳細

    • resetLocaleContext

      public static void resetLocaleContext()
      現在のスレッドの LocaleContext をリセットします。
    • setLocaleContext

      public static void setLocaleContext(@Nullable LocaleContext localeContext)
      指定された LocaleContext を現在のスレッドに関連付けます。子スレッドの継承可能として公開しません

      与えられた LocaleContext は TimeZoneAwareLocaleContext であり、タイムゾーン情報が関連付けられたロケールを含みます。

      パラメーター:
      localeContext - スレッドにバインドされたコンテキストをリセットするための現在の LocaleContext または null 
      関連事項:
    • setLocaleContext

      public static void setLocaleContext(@Nullable LocaleContext localeContext, boolean inheritable)
      指定された LocaleContext を現在のスレッドに関連付けます。

      与えられた LocaleContext は TimeZoneAwareLocaleContext であり、タイムゾーン情報が関連付けられたロケールを含みます。

      パラメーター:
      localeContext - スレッドにバインドされたコンテキストをリセットするための現在の LocaleContext または null 
      inheritable - LocaleContext を子スレッドの継承可能として公開するかどうか (InheritableThreadLocalSE を使用する)
      関連事項:
    • getLocaleContext

      @Nullable public static LocaleContext getLocaleContext()
      現在のスレッドに関連付けられている LocaleContext があれば、それを返します。
      戻り値:
      現在の LocaleContext、または存在しない場合は null 
    • setLocale

      public static void setLocale(@Nullable LocaleSE locale)
      指定されたロケールを現在のスレッドに関連付け、すでに設定されている可能性のある TimeZone を保持します。

      指定されたロケールの LocaleContext を暗黙的に作成し、子スレッドの継承可能として公開しません

      パラメーター:
      locale - 現在のロケール、またはスレッドにバインドされたコンテキストのロケール部分をリセットする null 
      関連事項:
    • setLocale

      public static void setLocale(@Nullable LocaleSE locale, boolean inheritable)
      指定されたロケールを現在のスレッドに関連付け、すでに設定されている可能性のある TimeZone を保持します。

      指定されたロケールの LocaleContext を暗黙的に作成します。

      パラメーター:
      locale - 現在のロケール、またはスレッドにバインドされたコンテキストのロケール部分をリセットする null 
      inheritable - LocaleContext を子スレッドの継承可能として公開するかどうか (InheritableThreadLocalSE を使用する)
      関連事項:
    • setDefaultLocale

      public static void setDefaultLocale(@Nullable LocaleSE locale)
      JVM 全体のデフォルトロケールの代わりに、フレームワークレベルで共有デフォルトロケールを設定します。

      注意 : これは、JVM 全体のデフォルトロケールとは異なるアプリケーションレベルのデフォルトロケールを設定できます。ただし、これには、そのような各アプリケーションがローカルにデプロイされた Spring Framework jar に対して動作する必要があります。このようなシナリオでは、サーバーレベルで Spring を共有ライブラリとしてデプロイしないでください。

      パラメーター:
      locale - デフォルトのロケール (なしの場合は null、ルックアップは Locale.getDefault() にフォールバックできます)
      導入:
      4.3.5
      関連事項:
    • getLocale

      public static LocaleSE getLocale()
      現在のスレッドに関連付けられているロケールがある場合はそれを返し、そうでない場合はシステムのデフォルトのロケールを返します。これは実質的に Locale.getDefault() の置き換えであり、オプションでユーザーレベルのロケール設定を考慮できます。

      注: このメソッドには、フレームワークレベルまたは JVM 全体のシステムレベルで、共有のデフォルトロケールへのフォールバックがあります。未加工の LocaleContext コンテンツ(null を介して特定のロケールがないことを示している可能性がある)を確認する場合は、getLocaleContext() を使用して LocaleContext.getLocale() を呼び出します。

      戻り値:
      現在のロケール、または特定のロケールが現在のスレッドに関連付けられていない場合はシステムのデフォルトのロケール
      関連事項:
    • getLocale

      public static LocaleSE getLocale(@Nullable LocaleContext localeContext)
      指定されたユーザーコンテキストに関連付けられているロケールがある場合はそれを返し、そうでない場合はシステムのデフォルトのロケールを返します。これは実質的に Locale.getDefault() の置き換えであり、オプションでユーザーレベルのロケール設定を考慮できます。
      パラメーター:
      localeContext - チェックするユーザーレベルのロケールコンテキスト
      戻り値:
      現在のロケール、または特定のロケールが現在のスレッドに関連付けられていない場合はシステムのデフォルトのロケール
      導入:
      5.0
      関連事項:
    • setTimeZone

      public static void setTimeZone(@Nullable TimeZoneSE timeZone)
      指定された TimeZone を現在のスレッドに関連付け、すでに設定されている可能性のあるロケールを保持します。

      指定されたロケールの LocaleContext を暗黙的に作成し、子スレッドの継承可能として公開しません

      パラメーター:
      timeZone - スレッドにバインドされたコンテキストのタイムゾーン部分をリセットするための現在の TimeZone または null 
      関連事項:
    • setTimeZone

      public static void setTimeZone(@Nullable TimeZoneSE timeZone, boolean inheritable)
      指定された TimeZone を現在のスレッドに関連付け、すでに設定されている可能性のあるロケールを保持します。

      指定されたロケールの LocaleContext を暗黙的に作成します。

      パラメーター:
      timeZone - スレッドにバインドされたコンテキストのタイムゾーン部分をリセットするための現在の TimeZone または null 
      inheritable - LocaleContext を子スレッドの継承可能として公開するかどうか (InheritableThreadLocalSE を使用する)
      関連事項:
    • setDefaultTimeZone

      public static void setDefaultTimeZone(@Nullable TimeZoneSE timeZone)
      JVM 全体のデフォルトタイムゾーンの代わりに、フレームワークレベルで共有デフォルトタイムゾーンを設定します。

      注意 : これは、JVM 全体のデフォルトタイムゾーンとは異なるアプリケーションレベルのデフォルトタイムゾーンを設定できます。ただし、これには、そのような各アプリケーションがローカルにデプロイされた Spring Framework jar に対して動作する必要があります。このようなシナリオでは、サーバーレベルで Spring を共有ライブラリとしてデプロイしないでください。

      パラメーター:
      timeZone - デフォルトのタイムゾーン (なしの場合は null、ルックアップは TimeZone.getDefault() にフォールバックできます)
      導入:
      4.3.5
      関連事項:
    • getTimeZone

      public static TimeZoneSE getTimeZone()
      現在のスレッドに関連付けられている TimeZone(存在する場合)、またはシステムのデフォルトの TimeZone を返します。これは実質的に TimeZone.getDefault() の代替であり、オプションでユーザーレベルの TimeZone 設定を考慮できます。

      メモ: このメソッドには、フレームワークレベルまたは JVM 全体のシステムレベルのいずれかで、共有のデフォルト TimeZone へのフォールバックがあります。生の LocaleContext コンテンツ(null を介して特定のタイムゾーンがないことを示している可能性があります)を確認する場合は、getLocaleContext() を使用し、TimeZoneAwareLocaleContext にダウンキャストした後に TimeZoneAwareLocaleContext.getTimeZone() を呼び出します。

      戻り値:
      現在の TimeZone、または特定の TimeZone が現在のスレッドに関連付けられていない場合はシステムのデフォルト TimeZone
      関連事項:
    • getTimeZone

      public static TimeZoneSE getTimeZone(@Nullable LocaleContext localeContext)
      特定のユーザーコンテキストに関連付けられている TimeZone(存在する場合)、またはシステムのデフォルト TimeZone を返します。これは実質的に TimeZone.getDefault() の代替であり、オプションでユーザーレベルの TimeZone 設定を考慮できます。
      パラメーター:
      localeContext - チェックするユーザーレベルのロケールコンテキスト
      戻り値:
      現在の TimeZone、または特定の TimeZone が現在のスレッドに関連付けられていない場合はシステムのデフォルト TimeZone
      導入:
      5.0
      関連事項: