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

时间:2015-07-22 05:55:40

标签: java hibernate java-ee struts2 standards

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

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

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

1 个答案:

答案 0 :(得分:2)

简而言之:

  1. 为前端选择一个框架(通常是MVC,然后是 Struts2 JSF2 Spring MVC 等等......你和# 39;已经选择了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本身。

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

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

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

  4. 结论

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

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