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企业应用实战:Struts+Spring+Hibernate整合开发 #### 一、概述 《轻量级J2EE企业应用实战》是一部深入介绍J2EE框架下开发实践的书籍,主要关注于JSP、Spring、Hibernate、Struts以及它们之间的整合...
- **Hessian使用演示**:Hessian是一种轻量级的远程过程调用协议,这里通过示例展示了如何使用Hessian实现远程调用。 - **几种Remoting实现的比较**:对比分析了多种远程调用技术的特点和适用场景。 - **改造...
12. **REST和Web服务**:REST(Representational State Transfer)强调资源状态转移,轻量级、无状态,适合互联网环境。Web服务通常基于SOAP协议,复杂但功能强大。两者在数据交换格式、交互方式和协议上有明显差异...
14. **RESTful架构**:一种轻量级的网络架构风格,相比传统的MVC,REST更简洁,直接利用HTTP方法操作资源。 15. **单例模式实现**:通常使用双重检查锁定(Double-Checked Locking)或静态内部类方式实现。 16. **...
│ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...
│ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...
│ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...
│ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...
│ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...