Spring Boot 源码分析——RequestContextHolder 与 ThreadLocal
笔者一直在思考 Shiro 如何通过 SecurityUtils
拿到当前用户。原来是对于每个 HTTP 请求,在 Java
中都会开启一个线程进行处理,这个线程内就存放了当前的请求与请求信息,Shiro
通过当前线程,就可以拿到对应的 HTTP 请求,从而拿到当前用户。
进一步考虑,Spring Boot 是如何实现这一过程的呢?Spring Boot 如何为每个请求分配线程,在线程中注入请求信息,又如何通过线程取出请求呢?