Warp-persist为基于Guice的应用程序在与Hibernate,JPA(包括TopLink扩展,OpenJPA以及Hibernte对JPA的扩展)以及db4jobjects等持久层的依赖注入上提供了单独一层。它通过使用@Transactional annotation,也提供了声明式事物处理。
Warp-persis可配置成Guice的标准module(注:module有点类似于Spring配置文件,可以将需要注入的模块统一在一个类文件中配置好),并使用类似于Guice优雅风格的接口,使其具有类型安全和简洁明了的特性。
- Guice.createInjector(PersistenceService
- .usingHibernate()
- .across(UnitOfWork.REQUEST)
- .buildModule());
Guice.createInjector(PersistenceService
.usingHibernate()
.across(UnitOfWork.REQUEST)
.buildModule());
Dynamic Finders(动态检测)是Warp-persist的一个特性:它以一种直观,类型安全(注:从使用泛型上就可以看到)的编程风格,可以自动的实现数据访问并减少了模板和那些重复的DAO代码。
- public interface PersonDao {
-
- @Finder("from Person")
- List<Person> listAll();
- }
public interface PersonDao {
@Finder("from Person")
List<Person> listAll();
}
代码的实现部分自动由warp-persist完成。Dynamic Finders当然也支持抽象类和实体类,支持参数绑定和简单的分页。warp-persist也是一个非侵入式的框架,并不需要包装或抽象底层的持久层接口,你完成可以专注于整合。
常常有一些Guice的批评都说它缺乏与持久层和事务层的整合。但现在我们相信warp-persist很巧妙的弥补了这个空白,并且一直跟随着Guice哲学:简单而且保证类型安全。
官方网址:http://www.wideplay.com/
真没想到,JavaEE还可以更简单!!!