`
aty
  • 浏览: 37133 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JDK的ThreadLocal理解(三)优雅的使用ThreadLoca

阅读更多

ThreadLocal的使用可以参考struts2的ActionContext,个人觉得这种使用方式是比较优雅的:

1、ThreadLocal是业务无关的对象,对于开发代码来说,越少使用越好。

     这样能够尽可能的减少技术细节分散开发者对业务逻辑的关注

 

public class ActionContext implements Serializable 
{
    static ThreadLocal<ActionContext> actionContext = new  ThreadLocal<ActionContext>();

   /**
     * Sets the action context for the current thread.
     *
     * @param context the action context.
     */
    public static void setContext(ActionContext context) {
        actionContext.set(context);
    }

    /**
     * Returns the ActionContext specific to the current thread.
     *
     * @return the ActionContext for the current thread, is never <tt>null</tt>.
     */
    public static ActionContext getContext() {
        return actionContext.get();
    }
}

 经过这种封装后,整个ActionContext类,只有3个地方会涉及ThreadLocal的使用:变量定义、set、get。这3处使用都很简单,不容易出错

 

分享到:
评论

相关推荐

    JDK的ThreadLocal理解(一)使用和测试

    **标题:“JDK的ThreadLocal理解(一)使用和测试”** **正文:** ThreadLocal是Java中的一个非常重要的线程安全工具类,它在多线程编程中扮演着独特的角色。通过创建ThreadLocal实例,我们可以为每个线程提供一个...

    理解threadlocal

    ### 理解ThreadLocal #### 一、ThreadLocal简介 `ThreadLocal`是一个非常有用的类,它在Java 1.2版本中...理解`ThreadLocal`的工作原理及其使用方法,可以帮助我们在多线程编程中更加高效地处理数据和状态管理问题。

    JDK17生产环境免费使用说明及许可协议文件

    Oracle官方HTML格式说明:jdk17生产环境免费使用说明及许可协议(Oracle No-Fee Terms and Conditions) Java 17 LTS is the latest long-term support release for the Java SE platform. JDK 17 binaries are ...

    JDK资源包合集(JDK6+JDK7+JDK8)

    本资源包集合包括了JDK6、JDK7和JDK8三个重要版本,分别代表了Java发展历程中的关键节点。 JDK6,也称为Java SE 6(标准版6),于2006年发布,是Java平台的一个重要里程碑。此版本引入了许多新特性,如改进的Swing...

    JAVAJDK使用教程

    **JAVAJDK使用教程** Java JDK,全称为Java Development Kit,是开发和运行Java应用程序的基础工具集。它包括了Java编译器、Java虚拟机(JVM)、类库和其他必要的工具,使得开发者能够创建、调试和运行Java程序。本...

    JDK11安装包,JDK11安装包

    JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11...

    JDK11使用MapStruct

    JDK11使用MapStruct

    深入理解ThreadLocal工作原理及使用示例

    深入理解ThreadLocal工作原理及使用示例 ThreadLocal是Java提供的一种解决多线程程序并发问题的工具类,自JDK1.2版本以来提供了java.lang.ThreadLocal类。ThreadLocal的主要作用是为每个使用该变量的线程提供独立的...

    旧版本JDK JDK1.4

    尽管现在已经被更新的版本如JDK 8、JDK 11和JDK 17所取代,但JDK 1.4对于理解Java的发展历程具有重要意义。 **主要特性** 1. **异常链**:在JDK 1.4中,引入了异常链机制,允许一个异常捕获另一个异常,并将它们...

    ThreadLocal_ThreadLocal源码分析_

    **ThreadLocal概述** ThreadLocal是Java中的一个线程局部变量类,它...通过理解ThreadLocal的原理和最佳实践,我们可以更有效地利用它来解决多线程环境下的数据隔离问题,同时也需要注意防止可能出现的内存泄漏风险。

    jdk8-251 kettle9.2使用jdk版本

    标题“jdk8-251 kettle9.2使用jdk版本”和描述中提及了两个关键组件:Java Development Kit (JDK) 的8u251版本以及Kettle 9.2,这是一款流行的数据集成工具,也称为Pentaho Data Integration(PDI)。这些组件在IT...

    ThreadLocal.pdf

    在JDK 1.8中,ThreadLocal被重写了,使用了一种新的实现方式,即使用弱引用和ThreadLocalMap来存放数据。在旧版本中,ThreadLocalMap中的Entry对ThreadLocal的引用是强引用,这会导致ThreadLocal对象无法被回收,...

    mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系

    mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk...

    Mac 版本 jdk 11 Mac 版本 jdk 11 Mac 版本 jdk 11

    Mac 版本 jdk 11 Mac 版本 jdk 11 Mac 版本 jdk 11Mac 版本 jdk 11 Mac 版本 jdk 11 Mac 版本 jdk 11Mac 版本 jdk 11 Mac 版本 jdk 11 Mac 版本 jdk 11Mac 版本 jdk 11 Mac 版本 jdk 11 Mac 版本 jdk 11Mac 版本 jdk...

    jdk1.8安装包+一键设置jdk环境变量脚本

    Java Development Kit(JDK)是Java编程语言的核心组件,它包含编译器、调试器、JRE(Java Runtime ...同时,了解JDK的基本安装和环境变量配置原理,对于理解Java的运行机制和后续的开发工作都是非常有帮助的。

    jdk1.8.031 jdk1.8

    例如,COPYRIGHT文件包含了版权声明,README.html和THIRDPARTYLICENSEREADME.txt文件分别包含了JDK的使用说明和第三方组件的许可信息,而LICENSE文件则是JDK的许可证文件。 4. release文件夹可能包含了与JDK版本...

    jdk7 jdk8 jdk9 jdk10 jdk11 jdk12 jdk13 jdk14 (win-64位) 百度网盘下载

    jdk7 jdk8 jdk9 jdk10 jdk11 jdk12 jdk13 jdk14 (win-64位) 资源共享

    jdk11的相关使用说明

    **Java JDK 11 使用详解** Java Development Kit (JDK) 是Java编程语言的核心组件,它包含Java编译器、Java运行环境、调试工具和其他必要的工具,使得开发者能够编写、测试和部署Java应用程序。JDK 11是Java的一个...

    JDK7安装包.zip

    JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7...

    Linux更换JDK+weblogic更换JDK

    #### 三、WebLogic服务器更换JDK ##### 1. 修改WebLogic服务器配置 - 进入WebLogic安装目录下的`bin`文件夹。 - 编辑`setDomainEnv.sh`文件(对于UNIX/Linux环境),找到如下配置段落: ```bash BEA_JAVA_HOME="" ...

Global site tag (gtag.js) - Google Analytics