该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-06
warp-persist 1.0: 为Google Guice专门提供持久层与事务处理的框架,通过这个新闻仔细阅读了Warp网站上面的文档,感觉到很振奋,Warp是一个相当棒的Java Web框架,而且前景非常看好。
Warp framework 是最近刚刚发布的、基于Google Guice的轻量级Web开发框架,我也是在JavaEye网站的新闻频道看到的这条新闻: Warp框架充分利用了JDK5.0的Annotation和泛型机制,并且基于Google Guice这个IoC框架,提供了full-stack的Web开发设施,他主要包含了四个部分: warp-persist框架:封装Hibernate和JPA,提供事务管理和持久化资源管理 warp-dynamic-finder:提供了基于Annotation的动态查询功能,让数据库查询变得异常简单,不再需要DAO层 warp-mvc:借鉴了Tapestry5,提供了一个基于事件机制和组件化的Web层,并且组件注入方式高度IoC化 warp-servlet: 提供了一些Servlet的封装和附加的高级功能,例如URL过滤,和其他web框架集成等等 这几年来,Java在Web开发框架方面的进步显得很有限,Spring/Hibernate组合对撼JBoss Seam形成两大竞争的主流态势,但是这两个Web框架在Web快速开发方面的创新还显得不够好:Spring是越来越臃肿了,配置文件也是越来越复杂难懂了;JBoss Seam门槛又过高,而且集成的JSF一向受人垢病,并非完美的解决方案,特别是在Ruby on Rails横空出世之后,Java社区对于简洁易用的快速web开发框架的企盼也是一直很高的。 Warp在我看来是这方面做的最好的,它有以下几个鲜明的特点: 一、充分利用JDK5的annotation,简化编程和配置文件 Warp基于Google Guice并且发扬光大,自身无配置文件,所有功能完成均通过annotation,所以编程相当简洁 二、大量使用JDK5的泛型编程,提供强类型安全保证 虽说脚本语言的Duck Typing理念很流行,不过Java的优势也就是类型安全,Spring大量运用反射和XML配置等于是放弃了Java的优势。Warp在泛型方面做的很好,我相信在IDE的帮助下,Warp编程会更轻松 三、Warp-persist提供了声明式的事务管理,终于可以取代Spring了 Google Guice很好很强大,但是它没有事务管理能力和资源管理能力,所以无法取代spring,但是Warp-persist填补了这一缺憾,注入和管理Hibernate很容易: Injector injector = Guice.createInjector(..., PersistenceService .usingHibernate() .across(UnitOfWork.TRANSACTION) .buildModule()); 要声明事务比spring可简单多了: public class MyService { @Inject Provider<Session> session; @Transactional public void createNewPerson() { session.get().saveOrUpdate(new Person(...)); } } Warp支持Hibernate/JPA的所有事务管理策略,不但注入方式简单,而且声明事务方式更简单,代码看着简洁,写着更省心。 四、Dynamic Finder实在很酷! 还是直接看代码吧: @Finder(query="from Person") public List<Person> listAll() { return null; } 用annotation声明一下,一行查询代码都没有,你还要DAO干啥呢? @Finder(query="from Person where firstName = :firstName") Person find(@Named("firstName") String name); 带参数的绑定变量查询,还是一行代码不用写,DAO是啥? @Finder(query="from Person") List<Person> listAll(@FirstResult int first, @MaxResults int max); 带分页的查询,还是一行代码不用写,谁用DAO我跟谁急 ! 五、Web层也极其简单 Warp-MVC模仿了Tapestry 5的架构,但是作者做了大量的改良和简化,作者解释了一下为什么不直接使用Tapestry,而是自己开发的理由。 Warp-MVC看起来像一个Tapestry的简化版,有组件的概念,事件响应的方式,但是非常易用,非常简洁,URL映射也通过annotation方式声明,作者在自己的博客上面提供了相关的简单示例,可以参考: http://www.jroller.com/dhanji/ Warp框架是最近几年来,我看到的第一个走在正确发展方向上的Java Web框架:结构简单、易用使用、但充分发挥了Java自身的语法优势,非常值得期待! 目前Warp框架还不是特别成熟,但是Warp-persistent已经相当稳定了,如果你是使用Hibernate/Spring/Struts来开发项目的话,不妨试试Warp,把spring换掉改成Hibernate/Warp/Struts2.0,也是一个不错的解决方案,全部运用annotation,让你的项目Zero Configuration。 友情提醒:Warp官方网站无法直接访问,建议在FireFox浏览器上面安装gladder插件,跨越GFW。 Warp Framework - 官方网站 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-03-06
看到这样的代码我就兴奋,真是太简洁了!!
|
|
返回顶楼 | |
发表时间:2008-03-06
尽管不做web开发了,看到这样简洁的东西还是很有兴趣。呵呵,有人要跳出来大喊:滥用annotation了,可要我说,annotation怎么看也比xml顺眼。
|
|
返回顶楼 | |
发表时间:2008-03-06
不太明白功夫网为啥不让访问呢???
warp确实值得关注 |
|
返回顶楼 | |
发表时间:2008-03-06
等会去看看,不知能否和ibatis集成...
|
|
返回顶楼 | |
发表时间:2008-03-06
xuanhan863 写道 等会去看看,不知能否和ibatis集成... 不支持iBATIS,支持Hibernate,JPA和db4o。 |
|
返回顶楼 | |
发表时间:2008-03-06
前两天 theserverside消息, 不过那个官网打不开
|
|
返回顶楼 | |
发表时间:2008-03-06
看了robbin的介绍,的确挺振奋的framework,一直怀疑annotation,但的确到了它大展宏图的时候了。
|
|
返回顶楼 | |
发表时间:2008-03-06
JDK5.0是一个很大的分水岭,基于JDK5.0之前的框架比方说Struts2.0,Spring,JSF,Tapestry之类无论如何添加新的特性和功能支持,都因为限制于整体设计思路的影响,无法真正发挥JDK5的优势,在和RoR这种Web框架的较量下肯定是完败的。所以在JDK5之后出现的新框架才能令人真正耳目一新,比方说Google Guice,Warp都是这样,这样的新框架才是Java Web开发的未来。
|
|
返回顶楼 | |
发表时间:2008-03-06
我们现在产品基于spring hibernate,这个框架有些功能确实没办法解决.最近在选型,看了一段seam框架,感觉对工具依赖性太大了,并且跟jboss绑定的很紧.哎,不知道用什么好了.
|
|
返回顶楼 | |