//作用为了确保线程安全,在每个数据库连接都需要操作各自数据的时候它会提供强力支持
package cn.code.ThreadLocal; //ThreadLocal类的原理 import java.util.HashMap; import java.util.Map; public class ThreadLocalDemo<T> { Map<Thread,T>map = new HashMap<Thread,T>(); public void set(T t){ map.put(Thread.currentThread(), t); } public T get(){ return map.get(Thread.currentThread()); } public void remove(){ map.remove(Thread.currentThread()); } } /* * ThreadLocal 通常用在一个类的成员上 * 多线程访问它时,每个线程都有自己的副本,互不干扰 * Spring中把Connection放到了ThreadLocal中 * * */ class user{ private ThreadLocal<String>username = new ThreadLocal<String>(); }