package com.iailab.framework.env.core.context; import cn.hutool.core.collection.CollUtil; import com.alibaba.ttl.TransmittableThreadLocal; import java.util.ArrayList; import java.util.List; /** * 开发环境上下文 * * @author iailab */ public class EnvContextHolder { /** * 标签的上下文 * * 使用 {@link List} 的原因,可能存在多层设置或者清理 */ private static final ThreadLocal> TAG_CONTEXT = TransmittableThreadLocal.withInitial(ArrayList::new); public static void setTag(String tag) { TAG_CONTEXT.get().add(tag); } public static String getTag() { return CollUtil.getLast(TAG_CONTEXT.get()); } public static void removeTag() { List tags = TAG_CONTEXT.get(); if (CollUtil.isEmpty(tags)) { return; } tags.remove(tags.size() - 1); } }