【问题标题】:Wicket's @SpringBean's and request scoped objectsWicket 的 @SpringBean 和请求范围对象
【发布时间】:2010-01-11 18:56:41
【问题描述】:

有什么理由可以通过注入的@SpringBean 字段在请求之间缓存请求范围的 Spring 对象?

【问题讨论】:

    标签: java spring wicket


    【解决方案1】:

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

    没有更多关于你为什么问这个问题的信息,除了建议你打开 Spring 的 DEBUG 级日志记录并观察请求范围的 bean 之外,我无法提供更多帮助已创建。

    【讨论】:

    • 谢谢,斯卡夫曼。这正是我在建议时所期望的行为。我正在工作的一个团队在通过询问 spring 上下文来获取引用时体验了请求范围 bean 的预期行为。但是,如果我们通过 @SpringBean 注入 bean,我们将看不到为每个请求创建后续 bean 实例。我们有一个解决办法。但我一定会打开 Spring 调试日志,看看是否会得出一些结论。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      • 2012-11-13
      • 2015-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多