BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

OpenXava 4.0开始支持JPA 2.0与依赖注入

| 作者 Srini Penchikala 关注 34 他的粉丝 ,译者 张龙 关注 12 他的粉丝 发布于 2011年1月25日. 估计阅读时间: 5 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

基于Java的模型驱动开发框架OpenXava的最新版开始支持JPA 2.0与依赖注入了。OpenXava 4.0于去年11月发布,4.0.1版于上周发布。新版本还改进了Groovy支持。

OpenXava框架根据Java或Groovy编写的领域类(带有JPA注解)对Java应用开发提供了支持。框架的主要组件有:

  • 业务组件:在OpenXava中,业务组件是创建应用的核心组件。业务组件是一个Java类(或是XML中定义的实体),里面包含了关于业务概念的所有信息,你可以使用这些信息为业务创建应用。
  • 控制器:控制器是动作的集合,而动作是用户可以点击的按钮或是链接。控制器定义了应用中用户可以处理的业务组件行为。一个控制器可以分配给多个业务组件。
  • 应用:OpenXava应用是多个模块的集合。模块可以通过一个或多个控制器加入到业务组件中。

你可以在Action类中使用依赖注入(JSR-330)将会话对象注入到Action类中的属性上。JPA 2.0用于数据持久化。近日发布的OpenXava 4.0.1通过新的回调注解(@PreCreate、@PostCreate及@PreDelete)开始支持回调方法,这样开发者就可以在类中使用JPA了。比如说,你可以通过@PreCreate注解在对象被持久化之前执行某些逻辑。此外,还可以执行JPA回调中所不允许的实体管理操作与查询。

新的Groovy支持可用于编写不同的OpenXava组件,如JPA实体、Action以及测试类。InfoQ有幸采访到了OpenXava项目团队的Javier Paniza以了解关于此次发布的信息以及框架未来的增强。

能否谈谈新的Groovy支持呢?

从4.0开始,你可以使用Groovy取代Java编写OpenXava(OX)应用的所有代码,甚至可以在同一个应用中混合使用Java与Groovy代码。这样就可以一点点地向现有应用中添加Groovy了。

由于Groovy的设计目标就是与Java的紧密集成,因此在OpenXava中集成Groovy是非常简单的事情。然而对于OpenXava开发者来说,这么做的附加值是相当高的,主要是因为Groovy的语法非常简单。在2.0时,OpenXava使用XML语法来定义业务组件,因此OX的学习曲线不那么陡,即便对于非Java程序员来说也是如此。当开始使用Java定义业务组件时,框架的灵活性得到了改进,但却丧失了简单性。借助于Groovy,我们不仅重获更简单的语法,同时也没有丧失灵活性。

使用Groovy编写的OpenXava与Grails之间的差别在于你可以使用标准的Java技术在OpenXava中编写代码。也就是说,你可以使用Groovy编写JPA实体,使用Groovy实现依赖注入(JSR-330)。你应该以Java的风格来使用Groovy而非RoR风格。这样就可以从现有的应用(甚至从Seam或是Spring Roo应用)中获取领域代码(JPA实体)了,然后将其放到OpenXava应用中,很快就能实现一个Ajax应用。然后,你可以一点点地向应用中添加Groovy代码了。

就框架对应用安全的支持(认证、授权、审计等)这个问题,Javier说OpenXava并没有直接提供任何的安全支持,但却对Java Portal(JSR-168/286)提供了很好的支持,包括可视化的风格集成。OpenXava所生成的Portlet应用中,Portlet拥有与容器Portal一样的感官。因此,如果集成了OpenXava(应用模块)与Liferay(安全与导航),那么就能获得完整的应用平台。如果不想使用Java Portal,那只需通过Java Web所用的标准技术、工具与框架为OpenXava应用添加安全支持即可。

项目对于新特性与增强的未来路线图如何?

我们开始了全新的增量改进之路,也就是说,不会两年后才发布5.0版,而是每过几个月就会发布4.1、4.2、4.3等等。一般来说,我们会持续不断地改进用户界面并为开发者增加新的特性。对于4.1版来说,我们希望增加HTML5/CSS3 和JSR-303(Bean Validation)支持,同时还有可能对列表的搜索功能进行一些改进。

查看英文原文:OpenXava 4.0 Supports JPA 2.0 and Dependency Injection

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

见过慢的,没见过这么慢的,pass了 by Zeng Abrams

RT

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT