有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java不支持Spring代理请求属性吗?

如果在某个地方我有一个带有@AutowiredHttpSession或HttpServletRequest的单例@Componentbean“Foo”,Foo本身是否必须声明为session(或request)作用域,或者我可以把它作为一个简单的单例——在这种情况下,HttpSession和/或HttpServletRequest可能已经通过Spring作为作用域代理注入了


共 (1) 个答案

  1. # 1 楼答案

    我的理解是Spring确实使用了代理,是的。Spring允许通过将代理注入到单例对象中,将请求或会话范围的对象注入到单例对象中

    对于Spring MVC,我认为注入的代理由ThreadLocal变量支持,因为每个请求都绑定到一个线程。然后,真正的HttpServletRequest就可以通过这个注入的代理来使用,在调用时,这个代理将委托给ThreadLocal

    因此,您不需要将“Foo”声明为会话或请求作用域,并且可以将其保持为单例