您的位置: 新闻频道 Java新闻

原创新闻 warp-persist 1.0: 为Google Guice专门提供持久层与事务处理的框架

2008-03-04 by 正式记者 kyo100900
评论(11) 有3269人浏览 warp-persist, google guice

Warp-persist为基于Guice的应用程序在与HibernateJPA(包括TopLink扩展,OpenJPA以及HibernteJPA的扩展)以及db4jobjects等持久层的依赖注入上提供了单独一层。它通过使用@Transactional annotation,也提供了声明式事物处理。

 

Warp-persis可配置成Guice的标准module(注:module有点类似于Spring配置文件,可以将需要注入的模块统一在一个类文件中配置好),并使用类似于Guice优雅风格的接口,使其具有类型安全和简洁明了的特性。

 

Guice.createInjector(PersistenceService
                      .usingHibernate()
                      .across(UnitOfWork.REQUEST)
                      .buildModule());

 

Dynamic Finders(动态检测)是Warp-persist的一个特性:它以一种直观,类型安全(注:从使用泛型上就可以看到)的编程风格,可以自动的实现数据访问并减少了模板和那些重复的DAO代码。

 

public interface PersonDao {

        @Finder("from Person")
        List<Person> listAll();
}

 

 

代码的实现部分自动由warp-persist完成。Dynamic Finders当然也支持抽象类和实体类,支持参数绑定和简单的分页。warp-persist也是一个非侵入式的框架,并不需要包装或抽象底层的持久层接口,你完成可以专注于整合。

 

常常有一些Guice的批评都说它缺乏与持久层和事务层的整合。但现在我们相信warp-persist很巧妙的弥补了这个空白,并且一直跟随着Guice哲学:简单而且保证类型安全。

 

官方网址:http://www.wideplay.com/

 

真没想到,JavaEE还可以更简单!!!


来自:theserverside

评论 共 11 条 发表评论

Linuxboy 2008-05-09 23:42
看起来相当不错!值得期待!
weilesi 2008-04-17 16:57
对啊,这个http://www.wideplay.com/ 官方网站怎么访问不了呢?
cnoss 2008-03-30 21:16
最新动态:

JRest4Guice的同级项目Jpa4Guice也完成了0.1版的测试。


1、支持事务

2、支持动态DAO

================================
1、DAO部分
================================
/**
 * 负责联系人持久化处理的DAO
 * @author cnoss
 */
@Dao
public interface ContactDao {
	@DaoMethod(type=DaoMethodType.PERSIST)
	public void createContact(Contact contact);

	@DaoMethod(type=DaoMethodType.LIST,namedQuery="list")
	public List<Contact> listContacts(@FirstResult int first,@MaxResults int max);
	
	@DaoMethod(type=DaoMethodType.LIST,query="select e from Contact e where e.name=:name")
	public List<Contact> findContactByName(@Named("name") String name);

	@DaoMethod(type=DaoMethodType.FIND)
	public Contact findContactById(String contactId);
	
	@DaoMethod(type=DaoMethodType.MERGE)
	public void updateContact(Contact contact);

	@DaoMethod(type=DaoMethodType.REMOVE)
	public void deleteContact(Contact contact);
}


================================
2、业务层部分
================================
@SuppressWarnings("unchecked")
public class ContactServiceBean implements ContactService {
	@Inject
	private ContactDao dao;//注入联系人DAO

	@Transactional
	public String createContact(Contact contact) {
		if (contact == null)
			throw new RuntimeException("联系人的内容不能为空");

		if (this.dao.findContactByName(contact.getName()).size() > 0) {
			throw new RuntimeException("联系人的姓名相同,请重新输入");
		}

		this.dao.createContact(contact);
		return contact.getId();
	}

...........
...........
...........
}


注:
由于最近的更新比较快,所以没有打包,有需要的朋友请从SVN上直接下载原代码,源代码中有详细的例子。

http://code.google.com/p/jrest4guice/source/checkout

谢谢大家的参与和批评。

-- cnoss小组
jasongreen 2008-03-13 16:22
好东西,我要看看,可是访问不了,谁给个代理
beitongmoming 2008-03-11 22:23
访问
http://www.wideplay.com-a.googlepages.com/home
看看
steven_652 2008-03-08 10:05
只能用在线web代理才可以访问该网站
wuming_player 2008-03-06 22:14
框架实现架构思想和其所提供的功能来谈,是相当不错的。当如果能够彻底抛开XML,此举需要继续关注。
robbin 2008-03-06 10:58
这个东西好哇,有了它,就可以扔掉spring了,实现全部annotation编程
ueseu 2008-03-05 16:56
福州
那个网址我可以访问
murainwood 2008-03-05 14:01
上海也是.我从Google上搜到其SVN的URL,把源代码Check下来了
zhida 2008-03-05 09:10
http://www.wideplay.com/ 在北京无法访问(一个月前就这样),别人会有同样问题吗?

发表评论

您还没有登录,请登录后发表评论