ThreadLocal并不是一个Thread,而是Thread的局部变量。当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立的改变自己的副本,而不是影响其它线程所对应的副本。
ThreadLocal为每个线程提供单独一份存储空间,具有线程隔离的效果,只有在线程内才能获得对应的值,线程外则不能访问。
ThreadLocal常用方法:
在实际开发过程中,有时候需要在不同的类中使用同一个数据,例如:在不同的类中获取到存储在session中的用户id,那么这个时候就可以通过ThreadLocal来获取同一个数据。
那么可以在 LoginCheckFilter 中的 doFilter 函数中获取当前登录的用户id,并调用ThreadLocal 的set方法来设置线程的局部变量值(用户id),然后在 MyMetaObjectHandler 中的updateFill 函数中使用ThreadLocal的get方法来获取当前线程对应的线程局部变量值(用户id)