java - Struts2-Full-Hibernate 插件是集成 Struts2 和 Hibernate 的标准方式吗?

标签 java hibernate jakarta-ee struts2 standards

<分区>

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

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

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

最佳答案

简而言之:

  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 提供者,但它是最常用的(不一定是最好的),因此也是最标准的。使用此配置,您可以通过 separating the presentation layer (Struts2 actions) from the persistence layer 构建应用程序的层,其中执行 CRUD。 DAO 层也不再需要,因为 JPA 的 EntityManager dao 本身。

    • 否则您可以使用 raw Hibernate 及其专有注释(或任何其他持久性管理器),在这种情况下,使用 Struts2,您可以使用(复古?)Struts2-Full-Hibernate plugin .它简化了一些工作,但迫使您使用 OSIV (Open-Session-In-View) (anti)pattern .

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

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


结论

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

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

关于java - Struts2-Full-Hibernate 插件是集成 Struts2 和 Hibernate 的标准方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31554922/

相关文章:

java - Tomcat 6 - 静态初始化程序中的错误被 NoClassDefFoundError 隐藏

java - Log4j2 RegexFilter 模式不匹配

java - Spring @Transactional 和 Hibernate @LockMode 注释如何相关

java - Jboss EAP - Servlet 未加载

java - .forward() 然后 resp.sendRedirect() 与 servlet

java - 如何运行 .bat 文件以在运行 .jar 的第二个 .bat 文件中执行命令?

java - startActivity()期间的"Application was stopped"

java - Hibernate/JPA OneToMany 是否应该在两侧进行更新?

multithreading - hibernate session 线程

带有方法和参数的 Java EE outputText,在 dataTable 中