Guice Persist 是 Google Guice 的官方扩展,它允许开发者配置和注入一个持久化单元到自己的类中。Guice Persist 仅支持一个应用只有一个持久化单元,且这个持久化单元只能由应用程序管理,不支持容器管理。近日,Apache Onami 团队宣布 Onami Persist 1.0.0 发布,它是 Guice 在 JPA 和 JTA 两个方面的扩展。Onami Persist 拟补了 Guice Persist 的不足,它支持应用程序管理和容器管理多个持久化单元以及支持本地事务和 JTA 事务。Onami Persist 和 Guice Persist 主要不同点如下:
- Onami Persist 支持多个持久化单元的 JTA 和自定义注解的事务管理
- 在 Guice Persist 中,EntityManager 不能被注入;而在 Onami Persist 中,EntityManagerProvider 必须被注入
- Onami Persist 中,@Transactional 注解使开发者能够指定事务所在的持久化单元
- Onami Persist 为 UnitOfWork 新增了 isActive() 方法
- 在 Guice Persist 中,恢复 EntityManager 对象后,不能启动 UnitOfWork;而在 Onami Persist 中,UnitOfWork 如果不是存活的,将抛出异常
- Onami Persist 中,PersistenceService 在停止后仍可以重启
Onami Persist 的 maven 资源库已经可以使用,开发者需将以下依赖添加到自己的 pom.xml 文件中:
<dependencies> <dependency> <groupId>org.apache.onami</groupId> <artifactId>org.apache.onami.persist</artifactId> <version>1.0.0</version> </dependency> <p></dependencies></p>
更多关于 Onami Persist 的详细信息请登陆其首页查看。另外,Onami Persist 是Guice 的扩展,Guice 是一个轻量级、基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。它非常小而且快,且是类型安全的,能够对构造函数、属性、方法进行注入。
感谢郭蕾对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论