基于struts2拦截器的权限管理之ThreadLocal在数据传递中的应用
程序员文章站
2022-05-28 15:57:59
...
费话不多说 ,可以看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);
}
}