`
gege_s
  • 浏览: 18754 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

基于struts2拦截器的权限管理之ThreadLocal在数据传递中的应用

 
阅读更多

费话不多说 ,可以看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);
	}
}
分享到:
评论

相关推荐

    Struts2权限控制

    4. **共享数据**:在拦截器中,可以利用ActionContext或ThreadLocal等机制来传递和共享数据,如用户的登录信息,以便在其他拦截器或Action中进行权限判断。 **四、例子分析** "基于Struts2拦截器的权限控制.doc...

    Struts通过拦截器实现登录后跳转到登录前页面

    在Struts2中,拦截器扮演着非常重要的角色,它允许开发者在动作执行前后插入自定义逻辑,如验证、日志、事务管理等。本话题主要探讨如何利用拦截器实现在用户成功登录后,将其重定向到登录前访问的页面。 首先,...

    ThreadLocal垮线程池传递数据解决方案.docx

    在实际应用中,TransmittableThreadLocal 可以应用于各种场景,如在微服务架构中,多个微服务之间需要传递数据;在分布式系统中,多个节点之间需要传递数据等。 TransmittableThreadLocal 是一种强大的ThreadLocal...

    ThreadLocal应用示例及理解

    **线程局部变量(ThreadLocal)是Java编程中一个非常重要的工具类,它在多线程环境下提供了线程安全的数据存储。ThreadLocal并不是一个变量,而是一个类,它为每个线程都创建了一个独立的变量副本,使得每个线程都...

    使用ThreadLocal管理“session”数据

    在Web应用中,特别是对于"session"数据的管理,ThreadLocal可以作为一种有效的解决方案。 1. **什么是Session?** Session是HTTP协议中的一个概念,用于存储用户在服务器端的状态信息。当用户登录网站后,服务器会...

    ThreadLocal原理及在多层架构中的应用.pdf

    在Java中,ThreadLocal被广泛应用于Web中间件、服务端编程和微服务架构中,用以解决多线程环境下的数据隔离问题。 首先,ThreadLocal原理是基于每个线程创建一个私有的数据存储结构(ThreadLocalMap),使得线程...

    ThreadLocal原理及在多层架构中的应用

    - **HTTP请求上下文**:在Web应用中,可以利用ThreadLocal传递请求相关的数据,如用户会话信息、请求参数等。 - **线程本地缓存**:为每个线程提供独立的缓存,避免并发访问引起的同步问题。 - **日志记录器**:在...

    struts2帮助系列

    自定义拦截器是Struts2的核心特性之一,允许开发者对Action调用前后的流程进行定制化处理,如日志记录、权限验证、事务管理等。在“struts2帮助系列”中,我们主要探讨如何创建和使用自定义拦截器。 首先,我们了解...

    spring 3.29+struts2.3.15.1+hibernate3 动态切换数据源

    3. 配置Struts2拦截器:在Struts2的配置中,创建拦截器,用于在请求进入时设置数据源标识。 4. 更新Spring配置:使Spring根据数据源key从路由数据源中获取实际的数据源,进而创建SessionFactory。 5. 业务层和DAO层...

    Struts2 学习 2

    在Struts2中,ThreadLocal被用来存储和管理请求相关的数据,确保在并发环境下每个请求都能正确地访问其独有的数据。 四、Action的实现方式 在“第六讲 action的实现方式.docx”中,你会了解到Struts2支持多种...

    springmvc 拦截器

    虽然拦截器与Servlet Filter在功能上有相似之处,但它们的执行时机和作用范围不同。Filter更底层,作用于所有请求,而拦截器只作用于Spring MVC的请求处理路径。 10. **最佳实践** - 尽可能地将通用逻辑抽取到...

    ThreadLocal

    ThreadLocal的一个经典应用场景是在数据库连接池中,每个线程都可以有自己的数据库连接,而无需在多个线程间共享,这样可以简化代码并提高性能。另外,它也可以用于HTTP请求上下文,存储请求相关的数据,如用户会话...

    ThreadLocal中内存泄漏和数据丢失问题的问题浅析及解决方案.docx

    ThreadLocal 是 Java 中的一种线程本地存储机制,它可以解决线程之间的数据传递问题。然而,在使用 ThreadLocal 时,可能会出现内存泄漏和数据丢失问题。本文将对 ThreadLocal 中内存泄漏和数据丢失问题进行浅析,...

    java中ThreadLocal详解

    在Java多线程编程中,`ThreadLocal`是一个非常重要的工具类,它提供了一种在每个线程内部存储线程私有实例的方法。通常情况下,当多个线程共享某个变量时,可能会引发线程安全问题。而`ThreadLocal`则提供了另一种...

    从ThreadLocal的使用到Spring的事务管理

    例如,在Web应用服务器中,我们可以用ThreadLocal存储用户的会话信息,确保每个请求都访问到自己专属的数据。 ThreadLocal的使用通常包括以下步骤: 1. 创建ThreadLocal实例,声明变量类型。 2. 在需要的地方,通过...

    Spring事务处理-ThreadLocal的使用

    在IT行业中,Spring框架是Java开发中的核心组件,尤其在企业级应用开发中扮演着重要角色。Spring事务处理是其核心特性之一,确保了数据的一致性和完整性。本篇文章将聚焦于Spring事务处理中ThreadLocal的使用,以及...

    WEB应用数据权限控制.pdf

    10. XML配置:文档中提到了Spring的配置文件"applicationContext-resources.xml",在其中会配置数据源、事务管理器以及相关的业务Bean,这是实现WEB应用数据权限控制的重要配置文件。 通过以上分析,我们可以看出...

    ActionContext介绍(在Struts2中)

    象,如HttpServletRequest、HttpServletResponse,或者需要访问Session和Application等信息,在Struts2框架中,我们可以利用ActionContext和ServletActionContext这两个类。ActionContext是Struts2提供的一个核心上...

Global site tag (gtag.js) - Google Analytics