费话不多说 ,可以看threadlocal源码明白它是用来做什么的,要说的是在jdk5中它加入了在线程结束后自动移除线程上引用的对象的方法,这方便了使用它来编程的步骤,也增强程序的健壮性。
/** * 这是为配合一个同事要加入aop来记录调用*.service.*impl.save*(..)方法时 * 要传入当前是哪个用户在调用,用户是哪个部门的,返回的主键是什么。并把这 * 些信息保存到control表用于分组访问控制。 */ package com.ylsoft.power.web.intercept; /** * 当前线程操作员信息 */ public class ThreadLocalOperater { /** * local变量 */ private static final ThreadLocal<AccessMessage> local=new ThreadLocal<AccessMessage>(); private ThreadLocalOperater(){ } /** * 获取访问信息 * @return */ public static AccessMessage getAccessMessage(){ AccessMessage am= local.get(); if (am==null) { am=new AccessMessage(); } return am; } /** * 设置访问信息 * @param accessMessage */ public static void setAccessMessage(AccessMessage accessMessage){ local.set(accessMessage); } }