Java Wicket';s@SpringBean';s和请求作用域对象

Java Wicket';s@SpringBean';s和请求作用域对象,java,spring,wicket,Java,Spring,Wicket,是否有任何原因可以解释为什么请求范围的Spring对象会通过注入的@SpringBean字段在请求之间缓存?SpringBean不应该是,不,但是Wicket不会将SpringBean直接注入Wicket组件,它会为目标SpringBean定义生成一个可序列化的代理,并将其注入到组件中。该代理可能会被缓存,这取决于您的wicket组件,但目标Springbean仍然由spring本身管理,请求范围的bean应该保持这样 如果没有更多关于你为什么要问这个问题的信息,我只能建议你打开Spring的调

是否有任何原因可以解释为什么请求范围的Spring对象会通过注入的@SpringBean字段在请求之间缓存?

SpringBean不应该是,不,但是Wicket不会将SpringBean直接注入Wicket组件,它会为目标SpringBean定义生成一个可序列化的代理,并将其注入到组件中。该代理可能会被缓存,这取决于您的wicket组件,但目标Springbean仍然由spring本身管理,请求范围的bean应该保持这样


如果没有更多关于你为什么要问这个问题的信息,我只能建议你打开Spring的调试级日志记录,并观察请求范围bean的创建。

Spring bean不应该是,不,但是Wicket没有将Spring bean直接注入Wicket组件,它为目标Springbean定义生成一个可序列化的代理,并将其注入到组件中。该代理可能会被缓存,这取决于您的wicket组件,但目标Springbean仍然由spring本身管理,请求范围的bean应该保持这样


如果没有更多关于您为什么要问这个问题的信息,我只能建议您打开Spring的调试级别日志记录,并观察请求范围的bean的创建。

我相信您需要使用targetClass范围的代理类型才能使其工作,并且不要忘记:

<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

org.springframework.web.context.request.RequestContextListener

我认为您需要使用targetClass作用域代理类型才能使其工作,并且不要忘记:

<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

org.springframework.web.context.request.RequestContextListener

谢谢你,斯卡夫曼。这正是我提出建议时所期望的行为。我正在工作的一个团队在通过请求spring上下文获取引用时经历了请求范围bean的预期行为。然而,如果我们通过@SpringBean注入bean,我们就看不到为每个请求创建后续bean实例。我们有工作要做。但我一定会打开Spring调试日志,看看是否会得出一些结论。谢谢,skaffman。这正是我提出建议时所期望的行为。我正在工作的一个团队在通过请求spring上下文获取引用时经历了请求范围bean的预期行为。然而,如果我们通过@SpringBean注入bean,我们就看不到为每个请求创建后续bean实例。我们有工作要做。但我肯定会打开Spring调试日志,看看这是否会导致一些结论。