我正在开始一个项目,愿意使用Struts2和Hibernate。
我应该使用 struts2-full-hibernate插件,还是以不同方式集成它们?
在互联网上搜索让我很困惑:它是集成它们的标准方式吗?如果没有,这是标准方式?
答案 0 :(得分: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。
选择框架和持久性管理器后,您需要选择 DI (依赖注入)管理器。如果您使用的是Java EE 6+,则标准是使用 CDI (JSR 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)
- Hibernate 4.x
- 的 Struts2的-CDI-插件强>