
nablarch.core.ThreadContext Maven / Gradle / Ivy
The newest version!
package nablarch.core;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.TimeZone;
import nablarch.core.util.annotation.Published;
/**
* スレッド内で共有すべきオブジェクトを保持するクラス。
*
* 本クラスで保持する値は、子スレッドが起動された場合、
* 暗黙的に全ての情報を子スレッドに引き継ぐ仕様となっている。
* このため、子スレッドでは個別に値を設定することなく、親スレッドで設定した値を使用することが出来る。
* また、子スレッドで個別に値を変更することも出来るが、ThreadLocalに格納したオブジェクトは各スレッドで共有され、
* 別スレッドの動作に影響を与える危険があるので、イミュータブルな値とスレッドセーフな値のみを格納すること。
*
* @author Koichi Asano
*/
@Published(tag = "architect")
public final class ThreadContext {
/** 言語のキー。 */
public static final String LANG_KEY = "LANG";
/** タイムゾーンのキー。 */
public static final String TIME_ZONE_KEY = "TIME_ZONE";
/** ユーザIDのキー。 */
public static final String USER_ID_KEY = "USER_ID";
/** リクエストIDのキー。 */
public static final String REQUEST_ID_KEY = "REQUEST_ID";
/** 内部リクエストIDのキー。 */
public static final String INTERNAL_REQUEST_ID_KEY = "INTERNAL_REQUEST_ID";
/** 実行時IDのキー。 */
public static final String EXECUTION_ID_KEY = "EXECUTION_ID";
/** 並行実行スレッド数のキー。 */
public static final String CONCURRENT_NUMBER_KEY = "CONCURRENT_NUMBER_KEY";
/** スレッド内で共有するオブジェクトを保持するThreadLocal。 */
private static ThreadLocal
© 2015 - 2025 Weber Informatics LLC | Privacy Policy