在使用spring框架开发的时候,我们经常会碰到这种情况:即,一个@Controller或@Service中的多个方法都使用到了request这个参数,那么为了简化代码,我们会将request作为成员变量注入。
但是,仔细思考一下,我们会有这样的疑问:
spring中@Controller默认是单例的,其成员变量也是在bean初始化时注入好的,而HttpServletRequest这个变量对于每一次请求都是不同的,难道@Controller对每次请求都重新注入request这个成员变量?且不说这种做法不符合spring对bean管理的一般方式,即使这样做了,线程安全如何保证?