Gevorg Harutyunyan:
System.out.println(LocaleContextHolder.getLocale()); // zh
new Thread(() -> {
System.out.println(LocaleContextHolder.getLocale()); // en_US
}).start();
親スレッドからは、私はコンテキストのロケールは、子スレッドからの「ZH」であることがわかり、私は「en_USの」を参照してください。新しいスレッドは、コンテキストのロケールを失っています。新しい作成したスレッドにコンテキストを渡す方法はありますか?
タルングプタ:
よるとのJavadoc
LocaleContextは継承フラグがtrueに設定されている場合、現在のスレッドによって生成されたすべての子スレッドによって継承されます。
この手段ロケールは、メソッドを使用して設定することができますsetLocale(Locale locale, boolean inheritable)
渡すことでinheritable
、真のよう。だから、新しい子スレッドを生成する前にあなたがあるsetLocaleを呼び出すことができるinheritable
と等しくなりますtrue
。