本文共 486 字,大约阅读时间需要 1 分钟。
做法:
1、比如我们在Controller的方法中,通常是直接将HttpServletRequest做为参数,而为了方便节省代码,通常会定义为全局变量,然后使用@Autowire注入。
说明:
1、观察了网上的说法,好像没有统一的解释,有些说会线程安全,有些则说不会。
2、如果按照一些方法进行测试,好像也会出现,而换另一种方法测试,好像也不会出现。
3、可能和Spring的版本有关,导致测试的结果不一样。
4、也有可能方法不对,导致测试结果不一致。
综上结论:
1、如果是最新版本经过严格测试后,不会导致线程安全的问题,那么可以使用。
2、如果Controller默认为单例,那么可以将注入的HttpServletRequest对象不要设置成单例,每次都创建一个,比如@Scope("prototype"),但这样也就放弃了单例的有点。
3、(推荐)按照官方的写法,其实这种做法是不太标准的,如果是规范的做法,那么就在方法的参数上进行使用,安全且符合标准。
简单的测试分析:
参考:
==>如有问题,请联系我:easonjim#163.com,或者下方发表评论。<==转载地址:http://keupo.baihongyu.com/