package io.github.hengyunabc.mybatis; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import org.springframework.context.ApplicationContext; public class SharedSpringContext { private static final ConcurrentMap<String, ApplicationContext> CONTEXTs = new ConcurrentHashMap<String, ApplicationContext>(); final static public String DEFAULT_SPRINGCONTEXT_NAME = "springContext"; private SharedSpringContext() { /* singleton */} public static void clear() { CONTEXTs.clear(); } public static Set<String> names() { return CONTEXTs.keySet(); } public static void removeDefaultContext() { remove(DEFAULT_SPRINGCONTEXT_NAME); } public static void remove(String key) { CONTEXTs.remove(key); } public static ApplicationContext addDefaultContext(ApplicationContext context) { return add(DEFAULT_SPRINGCONTEXT_NAME, context); } public static ApplicationContext add(String name, ApplicationContext context) { return CONTEXTs.putIfAbsent(name, context); } public static ApplicationContext getDefaultContext() { return get(DEFAULT_SPRINGCONTEXT_NAME); } public static ApplicationContext get(String name) { return CONTEXTs.get(name); } }