费话不多说 ,可以看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);
}
}
分享到:
相关推荐
4. **共享数据**:在拦截器中,可以利用ActionContext或ThreadLocal等机制来传递和共享数据,如用户的登录信息,以便在其他拦截器或Action中进行权限判断。 **四、例子分析** "基于Struts2拦截器的权限控制.doc...
在Struts2中,拦截器扮演着非常重要的角色,它允许开发者在动作执行前后插入自定义逻辑,如验证、日志、事务管理等。本话题主要探讨如何利用拦截器实现在用户成功登录后,将其重定向到登录前访问的页面。 首先,...
在实际应用中,TransmittableThreadLocal 可以应用于各种场景,如在微服务架构中,多个微服务之间需要传递数据;在分布式系统中,多个节点之间需要传递数据等。 TransmittableThreadLocal 是一种强大的ThreadLocal...
**线程局部变量(ThreadLocal)是Java编程中一个非常重要的工具类,它在多线程环境下提供了线程安全的数据存储。ThreadLocal并不是一个变量,而是一个类,它为每个线程都创建了一个独立的变量副本,使得每个线程都...
在Web应用中,特别是对于"session"数据的管理,ThreadLocal可以作为一种有效的解决方案。 1. **什么是Session?** Session是HTTP协议中的一个概念,用于存储用户在服务器端的状态信息。当用户登录网站后,服务器会...
在Java中,ThreadLocal被广泛应用于Web中间件、服务端编程和微服务架构中,用以解决多线程环境下的数据隔离问题。 首先,ThreadLocal原理是基于每个线程创建一个私有的数据存储结构(ThreadLocalMap),使得线程...
- **HTTP请求上下文**:在Web应用中,可以利用ThreadLocal传递请求相关的数据,如用户会话信息、请求参数等。 - **线程本地缓存**:为每个线程提供独立的缓存,避免并发访问引起的同步问题。 - **日志记录器**:在...
3. 配置Struts2拦截器:在Struts2的配置中,创建拦截器,用于在请求进入时设置数据源标识。 4. 更新Spring配置:使Spring根据数据源key从路由数据源中获取实际的数据源,进而创建SessionFactory。 5. 业务层和DAO层...
在Struts2中,ThreadLocal被用来存储和管理请求相关的数据,确保在并发环境下每个请求都能正确地访问其独有的数据。 四、Action的实现方式 在“第六讲 action的实现方式.docx”中,你会了解到Struts2支持多种...
虽然拦截器与Servlet Filter在功能上有相似之处,但它们的执行时机和作用范围不同。Filter更底层,作用于所有请求,而拦截器只作用于Spring MVC的请求处理路径。 10. **最佳实践** - 尽可能地将通用逻辑抽取到...
ThreadLocal的一个经典应用场景是在数据库连接池中,每个线程都可以有自己的数据库连接,而无需在多个线程间共享,这样可以简化代码并提高性能。另外,它也可以用于HTTP请求上下文,存储请求相关的数据,如用户会话...
ThreadLocal 是 Java 中的一种线程本地存储机制,它可以解决线程之间的数据传递问题。然而,在使用 ThreadLocal 时,可能会出现内存泄漏和数据丢失问题。本文将对 ThreadLocal 中内存泄漏和数据丢失问题进行浅析,...
在Java多线程编程中,`ThreadLocal`是一个非常重要的工具类,它提供了一种在每个线程内部存储线程私有实例的方法。通常情况下,当多个线程共享某个变量时,可能会引发线程安全问题。而`ThreadLocal`则提供了另一种...
例如,在Web应用服务器中,我们可以用ThreadLocal存储用户的会话信息,确保每个请求都访问到自己专属的数据。 ThreadLocal的使用通常包括以下步骤: 1. 创建ThreadLocal实例,声明变量类型。 2. 在需要的地方,通过...
在IT行业中,Spring框架是Java开发中的核心组件,尤其在企业级应用开发中扮演着重要角色。Spring事务处理是其核心特性之一,确保了数据的一致性和完整性。本篇文章将聚焦于Spring事务处理中ThreadLocal的使用,以及...
10. XML配置:文档中提到了Spring的配置文件"applicationContext-resources.xml",在其中会配置数据源、事务管理器以及相关的业务Bean,这是实现WEB应用数据权限控制的重要配置文件。 通过以上分析,我们可以看出...
象,如HttpServletRequest、HttpServletResponse,或者需要访问Session和Application等信息,在Struts2框架中,我们可以利用ActionContext和ServletActionContext这两个类。ActionContext是Struts2提供的一个核心上...
在实际应用中,ThreadLocal常常与Spring框架中的事务管理一起使用,保证每个线程在事务处理过程中拥有自己独立的资源副本,而不相互干扰。 以上就是ThreadLocal的核心知识点总结。由于原始文本中的部分信息无法准确...