我正在开始一个项目,愿意使用Struts2和Hibernate。
我应该使用 struts2-full-hibernate 插件,还是以其他方式集成它们?
在Internet上搜索使我感到困惑:这是整合它们的标准方法吗?如果没有,这是标准方法?
简而言之:
选择一个持久性管理器:
Java EE 6+ 的标准是 JPA 2.0 (JSR 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。
选择了框架和持久性管理器之后,您需要选择一个 DI (依赖注入)管理器。如果使用的是Java EE 6+,则标准是使用 CDI (JSR 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插件