为每个请求创建的单例对象
-
08-09-2020 - |
题
我想创建一个sinlgetom对象,其范围基本上只有请求。这个将用于收集错误,我们需要在发送响应时发送错误.. 我可以向这件事提供指针吗? 我也使用春天。
我尝试使用spring container singleton对象scope会话或请求,但仍然mu对象从早期请求
中保持值我正在使用这个错误对象的assignj..is可能导致静态绑定问题
解决方案
我不确定单例是你想要的 - 如果两个请求同时到达,他们会分享单例对象,并且他们的错误将混淆。
是可以创建一个对象来保存错误并将其放入Threadlocal对象。对象的范围将受到请求的约束,从应用程序内轻松实现在Threadlocal对象中访问它,而无需将参考传递到周围的对象。
其他提示
如何
//sync this code
if(request.getAttribute("someKey") == null){
// create object and set it
}
. 如果在每个请求中设置春天容器中的对象生命周期,那么它应该只存在于该HTTPRequest。
一般用于直接注入容器,如弹簧,当您设置对象生命周期或对象范围时,每次请求,那么它应该为其接收的每个HTTP请求创建对象的新实例。
如果它不是这样做,那么我会认为它可能与您的配置有关。
singleton是在创建bean时的闪烁窗口的偏好,我认为您必须专门将对象范围专门设置为每个请求。
bean scopes http://static.springsource.org/spring/docs/2.5.x /引用/ beans.html
您可以使用 threadlocal 。
不隶属于 StackOverflow