阅读更多

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
28
0
评论 共 13 条 请登录后发表评论
13 楼 yuky1327 2014-04-01 16:17
求个项目工程~~哪个帅哥美女发给我,e-mail:517888652@qq.com
12 楼 fastpace 2009-12-28 18:04
不可能仅仅listAll全查出来啊,一般的查询都同时又几个参数,并且参数的个数是动态的,这框架看起来美,不适应。

比如where p1=1 and p2=2 and p3=3这样的组合查询(用户没提交P2参数,此时就应该是where p1=1 and p3=3),它怎么处理?
11 楼 Linuxboy 2008-05-09 23:42
看起来相当不错!值得期待!
10 楼 weilesi 2008-04-17 16:57
对啊,这个http://www.wideplay.com/  官方网站怎么访问不了呢?
9 楼 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小组
8 楼 jasongreen 2008-03-13 16:22
好东西,我要看看,可是访问不了,谁给个代理
7 楼 beitongmoming 2008-03-11 22:23
访问
http://www.wideplay.com-a.googlepages.com/home
看看
6 楼 steven_652 2008-03-08 10:05
只能用在线web代理才可以访问该网站
5 楼 wuming_player 2008-03-06 22:14
框架实现架构思想和其所提供的功能来谈,是相当不错的。当如果能够彻底抛开XML,此举需要继续关注。
4 楼 robbin 2008-03-06 10:58
这个东西好哇,有了它,就可以扔掉spring了,实现全部annotation编程
3 楼 ueseu 2008-03-05 16:56
福州
那个网址我可以访问
2 楼 murainwood 2008-03-05 14:01
上海也是.我从Google上搜到其SVN的URL,把源代码Check下来了
1 楼 zhida 2008-03-05 09:10
http://www.wideplay.com/ 在北京无法访问(一个月前就这样),别人会有同样问题吗?

发表评论

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

相关推荐

Global site tag (gtag.js) - Google Analytics