上下文
上下文是 贯穿整个系统或阶段生命周期的对象 例如Spring的Application,struts2的ActionConext等 包含系统全局的一些信息,比如登录后的用户信息,账号信息,以及程序每一个阶段运行的数据。
简单上下文演示:
public class ApplicationContext {
// 在context中保存configuration信息
private String applicationConfiguration;
// 在context中保持的runtimeInfo信息
private String runtimeInfo;
// ... 其他上下文信息
// 采用holder方式实现单例模式
private static class Holder{
private static ApplicationContext instance = new ApplicationContext();
}
public static ApplicationContext getContext(){
return Holder.instance;
}
// 线程的上下文设计
// 这种方式会导致内存泄漏 就是当线程关闭结束后只将contexts中的key会变成null,而value对应对象不会释放
// 所以时间长了就会导致内存泄漏,当然可以通过 soft reference和 weak reference等引用类型来控制JVM来主动尝试回收。
private ConcurrentHashMap<