【问题标题】:JSF 2.0 viewScope in Spring 3.0 [duplicate]Spring 3.0 中的 JSF 2.0 viewScope [重复]
【发布时间】:2015-04-20 19:16:14
【问题描述】:

我有一个带有 Spring 托管 bean 的 Spring 3.0 + JSF 2.0 Web 应用程序。目前所有的 bean 都是会话范围的。在我们的应用程序中,我们没有使用任何向导类型的功能。所有主要功能都出现在不同的选项卡中。

最近我们使用静态代码分析器之一分析了应用程序代码,它指出了会话范围 bean 中许多位置可能存在的竞争条件问题。我了解在多个选项卡场景中,使用会话 bean 可能会出现问题。然后我看了一篇文章http://blog.primefaces.org/?p=702 建议可以将JSF viewScope 实现为spring 的自定义范围来防止这种情况。当我尝试将它用于我的几个 bean 时,它会破坏相应的应用程序功能。

现在我有 2 个问题 - 1. 就我的应用程序的竞争条件而言,当前使用 spring session bean 的情况在未来会有多可怕? 2. 是否有其他方法可以处理会话范围 bean 的多个选项卡问题?

欢迎任何建议。谢谢

【问题讨论】:

  • 我不使用 Spring,但我知道 Spring 已经支持 @Scope("view") 之类的东西(可能是因为只有某个版本,或者使用了一些自定义代码;使用“spring jsf view scope”进行谷歌搜索会产生很多结果)。它应该适合您的功能要求。然后,关于选择正确的 bean 范围,这是一个有用的阅读:stackoverflow.com/questions/7031885/… 你永远不应该依赖极端情况永远不会发生。使用错误的作用域是完全错误的
  • @user2704708....我过去曾与JSF 2.0 +spring 3.0@viewscope 合作过。我尝试过这个stackoverflow.com/questions/13005421/…。结帐答案可能是我会帮助你得到一些想法
  • 我用于 Spring 3 + JSF 2 的方法是让 JSF @ApplicationScoped bean 加载整个 Spring 上下文。然后,该 bean 充当无状态单例,并注入到我用于视图的每个 @ViewScoped bean 中。这样,每个视图都可以通过该 bean 定位服务并访问 DAO 服务。

标签: spring jsf-2


【解决方案1】:

实际上在 Spring 中查看 JSF 的作用域实现并不是很复杂。我已经创建了可以解决此问题的工件。

查看我的 github javaplugs/spring-jsf 存储库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-16
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    相关资源
    最近更新 更多