AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

  • 2011-01-24
  • 本文字数:1551 字

    阅读完需:约 5 分钟

基于 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

2011-01-24 06:231264
用户头像

发布了 88 篇内容, 共 269.2 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

一次资源泄露问题排查纪录

AI乔治

Java 架构 JVM 内存泄漏

字节跳动总监亲自整理,在知乎高达5716赞的Java开发手记。

Java架构之路

Java 程序员 架构 面试 编程语言

2020年第11期公有云性能评测:盛大云-华东实现“三冠”,百度云虎视眈眈

博睿数据

百度云 腾讯云 阿里云 公有云 华为云

【变与不变】架构中的边界划定

soolaugust

编程 架构 设计

9年技术面试官讲解:计算机专业应届生怎样写简历

Java架构师迁哥

Techo | 大数据专场报名盛启!12月20日欢迎莅临!

腾讯云大数据

大数据 数据仓库

云智一体:攀登2021智能经济新山峰

脑极体

游戏服务器多钱一个月呢?

德胜网络-阳

ES6中的Promise和Generator详解

程序那些事

新特性 ES6 Promise 程序那些事 Generator

在算力“沃土”上,种植互联网下一个奇迹十年

你确定你会算数吗?老大说:你连这个都不知道还敢面试电商公司?

小Q

Java 学习 编程 程序员 面试

程序员什么时候就该辞职了?

Java架构师迁哥

芯片破壁者(二十二):政府与半导体间的“美国往事”

脑极体

盘点2020 | 技术圈里的这些热名词

xcbeyond

微服务 DDD 金融科技 新基建 盘点2020

看完这份文档我吊打了BATJ面试官,他问的我全都会:Spring+逻辑算法+MySQL+Java+Redis+并发编程+JVM+RabbitMQ等

Java架构之路

Java 程序员 架构 面试 编程语言

校园恋爱新技能:智慧琴房恋爱助攻手册

IoT云工坊

物联网 API sdk 智慧琴房 智慧校园

架构师训练营第 1 期第 13 周学习总结

好吃不贵

极客大学架构师训练营

升级redhat6的yum源替换为centos源

Bruce Xiong

Java 并发编程:volatile能否保证数据的同步

李尚智

Java Java并发

“懂行人”携手互联网,创造未来无限可能

朋友不讲武德急催我给他Java干货教程,我劝他耗子尾汁并丢给他一份GitHub上标星115k+的Java教程,他看了之后连忙向我道歉!

Java架构之路

Java 程序员 架构 面试 编程语言

太狠了阿里技术专家撰写的电子版JVM&G1 GC实战,颠覆了传统认知

Java架构之路

Java 程序员 架构 面试 编程语言

synchronized 是王的后宫总管,线程是王妃

Java架构师迁哥

LeetCode题解:127. 单词接龙,BFS+生成所有可能新单词再匹配,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

官方活动 | 日更挑战(初阶)——七日更,挑战百元京东E卡!

InfoQ写作社区官方

七日更 热门活动

架构师训练营第 1 期第 13 周作业

好吃不贵

极客大学架构师训练营

Superset 助力企业级大数据 Ad-hoc 查询

麻婆豆腐没麻婆

数据分析 Apache Superset BI数美

工业区块链正在改变什么?

CECBC

环保

免费分享!GitHub标星15k的Java编程思想最新中文版,肝了一周整理成1539页的PDF文档!

Java架构之路

Java 程序员 架构 面试 编程语言

ROS 机器人操作系统进阶实战

Geek_3cc3ec

Python 人工智能 学习 ROS

A Guide for Accidental Project Managers

Geek_ed0696

pmp project manager role of PMP PMP Certification greycampus

OpenXava 4.0开始支持JPA 2.0与依赖注入_Java_Srini Penchikala_InfoQ精选文章