我想创建一个sinlgetom对象,其范围基本上只是请求。这将用于收集错误,我们需要在发送响应时发送错误.. 我能不能为这件事提供指示? 我也在用春天。
我尝试使用Spring容器单例对象作用域会话或请求,但仍然mu对象持有来自先前请求的值
我在AspectJ..is中使用此错误对象可能会导致静态绑定问题
答案 0 :(得分:1)
怎么样
//sync this code
if(request.getAttribute("someKey") == null){
// create object and set it
}
答案 1 :(得分:1)
如果将Spring容器中的Object生命周期设置为每个请求,那么它应仅存在于该HttpRequest中。
通常对于像Spring这样的直接注入容器,当你将对象生命周期或对象范围设置为每个请求时,它应该为它收到的每个http请求创建一个新的对象实例。
如果它没有这样做那么我会认为它很可能与你的配置有关。
Singleton是创建bean时spring容器的defualt我认为你必须根据请求专门设置对象范围。
Bean范围 http://static.springsource.org/spring/docs/2.5.x/reference/beans.html
答案 2 :(得分:0)
我不确定单身是你想要的 - 如果两个请求同时到达,他们将共享单个对象,他们的错误将会混淆。
是否可以创建一个对象来保存错误并将其放入ThreadLocal对象中。对象的范围将受到请求的约束,并且可以从应用程序中轻松实现对ThreadLocal对象的访问,而无需将引用传递给周围的对象。
答案 3 :(得分:0)
您可以使用ThreadLocal。