Java EE容器、Web容器、EJB容器和JPA持久化提供器之间的关系如图:
Java EE容器通常包含Web和EJB容器,以及持久化提供器。
访问JPA服务:持久化提供器
JPA没有遵照类似JVM容器的模型,而是遵照类似API(比如JDBC)的模型。当你通过调用EntityManager API方法明确的提出要求时,JPA提供持久化服务(比如增删改查JPA实体)。提供JPA实现的产品是持久化提供器或持久化引擎。因为JPA是完全可插入和独立的,所以EJB 3中的持久化提供器和容器不需要来自于同一个厂商。例如,可以在BEA WebLogic内使用Hibernate,而不使用
WebLogic自带的Kodo。
EJB常见服务
下图是主要的EJB 3组件服务以及他们的重要性。持久化服务由JPA提供器提供。
- EJB 3组件是可以通过简化的元数据注解配置的POJO;
- 使用依赖注入,从客户端应用程序访问EJB变得非常简单;
- EJB使用java持久化API是持久化标准化,这样定义POJO实体可以在容器之内和之外使用。