【问题标题】:Is Struts2-Full-Hibernate plugin the standard way to integrate Struts2 and Hibernate? [closed]Struts2-Full-Hibernate 插件是集成 Struts2 和 Hibernate 的标准方式吗? [关闭]
【发布时间】:2015-07-22 05:55:40
【问题描述】:

我正在开始一个项目,愿意使用 Struts2 和 Hibernate。

我应该使用 struts2-full-hibernate 插件,还是以不同的方式集成它们?

在互联网上搜索让我感到困惑:这是集成它们的标准方式吗?如果不是,那是标准的方式?

【问题讨论】:

  • 完整的 Hibernate 插件 2.2.2 GA 发布(2010 年 11 月 11 日) - 你怎么看?
  • 为什么所有这些投票都以主要基于意见的方式结束?他不是在问最好的,而是在问更标准的,标准是事实,JSR 上的黑底白字。
  • 这不是关于“如何使用休眠?” @Aleksandr M

标签: java hibernate jakarta-ee struts2 standards


【解决方案1】:

简而言之:

  1. 为前端选择一个框架(通常是MVC,然后是Struts2JSF2Spring MVC等...已经选择了 Struts2。Java EE 6+ 堆栈中的标准(不一定更好也不一定最常用)是 JSF2);
  2. 选择一个持久化管理器:

    • Java EE 6+ 的标准是 JPA 2.0 (JSR 317 - Java Persistence API)。 JPA 只是注释,你需要一个实现它们的库; Hibernate 可以用作 JPA 实现。 Hibernate 不是唯一的 JPA 提供者,但它是最常用的(不一定是最好的),因此也是最标准的。使用此配置,您可以通过执行 CRUD 的separating the presentation layer (Struts2 actions) from the persistence layer 构建应用程序的层。 DAO 层也不再需要,因为 JPA 的 EntityManager dao 本身。

    • 您也可以使用 raw Hibernate 及其专有注释(或任何其他持久性管理器),在这种情况下,使用 Struts2,您 可以使用(老式的?)Struts2-Full-Hibernate plugin。它简化了一些工作,但强制你使用OSIV (Open-Session-In-View) (anti)pattern

  3. 在选择了框架和持久化管理器之后,你需要选择一个DI(依赖注入)管理器。如果您使用的是 Java EE 6+,则标准是使用 CDIJSR 299 - 上下文和依赖注入)。在 Java EE 6 之前,或者对于怀旧的开发人员,Spring 仍然可用。当 Java EE 缺乏它时,它是第一个提供 DI / IoC(控制反转)的库。

    具体来说,使用 Struts2,您可以:


结论

根据Java EE,使用Struts2(而不是JSF2)的标准配置是:

  • Struts2
  • Java EE 6+(CDI + JPA 2.x + EJB 3.x)
  • 休眠 4.x
  • Struts2-CDI-plugin

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 2015-09-24
    相关资源
    最近更新 更多