一尘不染

Struts2-Full-Hibernate插件是将Struts2和Hibernate集成的标准方法吗?[关闭]

hibernate

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

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

在Internet上搜索使我感到困惑:这是整合它们的标准方法吗?如果没有,这是标准方法?


阅读 254

收藏
2020-06-20

共1个答案

一尘不染

简而言之:

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

    • Java EE 6+ 的标准是 JPA 2.0JSR 317 -Java Persistence API)。JPA只是注释,您需要一个实现它们的库; Hibernate 可用作JPA实现。Hibernate不是唯一的JPA提供程序,但它是使用最多的(不一定是最好的),因此是最标准的。使用此配置,您可以通过将表示层(Struts2操作)与执行CRUD 的持久层分开来构造应用程序的层。由于JPA的EntityManager dao本身,因此也不再需要DAO层。

    • 否则,您可以将 _原始_Hibernate及其专有注释(或任何其他持久性管理器)一起使用,在这种情况下,对于Struts2,您_可以_使用(vintage?)Struts2-Full-Hibernate插件。它简化了一些工作,但是迫使您使用 OSIV (Open-Session-In-View)(anti)pattern。

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

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

* 将 **CDI** 与 **Struts2-CDI-plugin** 集成;
* 将 **Spring** 与[**Struts2-Spring-plugin** 集成。

结论

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

  • Struts2
  • Java EE 6+ (CDI + JPA 2.x + EJB 3.x)
  • hibernate4.x
  • Struts2-CDI插件
2020-06-20