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

ThreadLocal在J2EE轻量级开发中的应用

    博客分类:
  • J2EE
 
阅读更多

ThreadLocal 相当于一个容器,在这个容器中保留了一个个的变量,每一个变量是为每一个线程单独存放。

在J2EE轻量级开发中,一般我们分为Action、Service、Model这几层,Action层一般是多态的,所以一般线程安全。而Service和Model是单例的,在这两个层里面一般不会放全局变量,因为这很容易因为多线程造成数据混乱。这时可以用ThreadLocal。

 

public class ShardInfoLocal {

	//这是一个ThreadLocal
	private static final ThreadLocal<ShardInfo> tl = new ThreadLocal<ShardInfoLocal.ShardInfo>();
	
	//设置ThreadLocal
	public static void set(Institutions i){
		ShardInfo si = new ShardInfo();
		si.setPrimaryInstitution(i);
		si.setShards(i.getShardName());
		tl.set(si);
	}
	
	//移除ThreadLocal
	public static void unset(){
		tl.remove();
	}
	
	//获取ThreadLocal
	public static String firstShard(){
		ShardInfo si = tl.get();
		if(si != null){
			return si.getShards()[0];
		}
		return null;
	}
	
	//ThreadLocal要存放的东西
	public static class ShardInfo{
		private Institutions primaryInstitution;
		private String[] shards;
		public Institutions getPrimaryInstitution() {
			return primaryInstitution;
		}
		public void setPrimaryInstitution(Institutions primaryInstitution) {
			this.primaryInstitution = primaryInstitution;
		}
		public String[] getShards() {
			return shards;
		}
		public void setShards(String... shards) {
			this.shards = shards;
		}
	}
}
分享到:
评论

相关推荐

    轻量级J2EE企业应用实战(part 4)共分5个part

    ### 轻量级J2EE企业应用实战:Struts+Spring+Hibernate整合开发 #### 一、概述 《轻量级J2EE企业应用实战》是一部深入介绍J2EE框架下开发实践的书籍,主要关注于JSP、Spring、Hibernate、Struts以及它们之间的整合...

    J2EE开发全程实录PDF J2EE开发全程实录PDF

    - **Hessian使用演示**:Hessian是一种轻量级的远程过程调用协议,这里通过示例展示了如何使用Hessian实现远程调用。 - **几种Remoting实现的比较**:对比分析了多种远程调用技术的特点和适用场景。 - **改造...

    Java架构师面试题

    12. **REST和Web服务**:REST(Representational State Transfer)强调资源状态转移,轻量级、无状态,适合互联网环境。Web服务通常基于SOAP协议,复杂但功能强大。两者在数据交换格式、交互方式和协议上有明显差异...

    中兴通java程序员面试题(高)

    14. **RESTful架构**:一种轻量级的网络架构风格,相比传统的MVC,REST更简洁,直接利用HTTP方法操作资源。 15. **单例模式实现**:通常使用双重检查锁定(Double-Checked Locking)或静态内部类方式实现。 16. **...

    java面试题及技巧3

    │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...

    java面试题以及技巧

    │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...

    java面试题目与技巧1

    │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...

    java面试题及技巧4

    │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...

    java面试题以及技巧6

    │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...

Global site tag (gtag.js) - Google Analytics