Future

Www Findmortgagehomemortgages Tag Global Domains Find Mortgage Home Mortgages 动态调用动态语言,第 2 部分: 在运行时寻找、执行和修改脚本

Www Findmortgagehomemortgages Tag Global Domains Find Mortgage Home Mortgages

search Www Domains search search search Www Global Global search Tag
Tag Domains Findmortgagehomemortgages Findmortgagehomemortgages

技术主题

软件下载

社区

技术讲座

动态调用动态语言,第 2 部分: 在运行时寻找、执行和修改脚本

动态地修改业务逻辑

Tom McQueeney (tom.mcqueeney@gmail.com), 首席技术顾问, Idea Integration
Tom McQueeney 是 Idea Integration(美国的一家咨询公司)的一名 Java 开发人员和应用程序架构师。他热衷于将一些动态语言(如 Ruby 和 Groovy)集成到 Java 项目中,从而提高开发的速度、效率和乐趣。他曾经是 O'Reilly OSCON 和 ApacheCon EuropeHe 的发言人,并且担任过 Denver Java Users Group 的总裁一职。他和他的妻子(也是一名认证的 Java 架构师)居住在华盛顿。

简介: Java™ 脚本编程 API(Java scripting API)是 Java SE 6 中新增的,它向后兼容 Java SE 5,支持以一种简单且统一的方式在运行时从 Java 应用程序调用数十种脚本语言。本系列的 第 1 部分 介绍了这个 API 的基本特性。第 2 部分进一步讲解它的功能,演示如何在无需停止并重新启动应用程序的情况下,在运行时执行外部 Ruby、Groovy 和 JavaScript 脚本以修改业务逻辑。

查看本系列更多内容

发布日期: 2007 年 9 月 24 日
级别: 中级
访问情况 : 3379 次浏览
评论: 


Java SE 6 中新增的 Java 脚本编程 API 为运行用各种动态语言编写的外部程序(并与之共享代码和数据)提供了一种统一的方式。Java 应用程序与脚本语言的强大功能和灵活性相结合是非常有意义的,尤其是在脚本语言能够更简洁地执行某些任务的情况下。但是,Java 脚本编程 API 不仅仅能够以一种统一的方式在 Java 程序中添加许多种脚本语言代码,它还支持在运行时寻找、读取和执行脚本。可以利用这些动态功能在程序运行时修改脚本,从而修改应用程序的逻辑。本文演示如何使用 Java 脚本编程 API 调用外部脚本来动态地修改程序逻辑。还要讨论在将一种或多种脚本语言集成到 Java 应用程序中时可能遇到的问题。

第 1 部分 用一个 Hello World 风格的应用程序介绍了 Java 脚本编程 API。这里将展示一个更真实的示例应用程序,这个程序使用脚本编程 API 创建一个动态的规则引擎,它可以以外部 Groovy、JavaScript 和 Ruby 脚本的形式定义规则。这些规则决定申请人是否符合某些抵押产品的住宅贷款条件。如果用脚本语言定义业务规则,规则就更容易编写,也便于非程序员(比如贷款审查员)阅读。通过使用 Java 脚本编程 API 将这些规则放在程序之外,还可以支持在应用程序运行时修改规则和添加新的抵押产品。

真实的应用程序

这个示例应用程序为虚构的 Shaky Ground Financial 公司处理住宅贷款申请。住宅抵押行业不断地推出新的贷款产品,还常常修改对合格申请人的限制规则。Shaky Ground 公司不但希望能够快速地添加和删除抵押产品,还需要快速修改业务规则,从而控制哪些人符合产品的贷款条件。

Java 脚本编程 API 正好能够满足这种需求。这个应用程序由一个 ScriptMortgageQualifier 类组成,这个类负责判断打算购买某一资产的贷款人是否符合给定的抵押贷款产品的条件。清单 1 给出这个类。


清单 1. ScriptMortgageQualifier 类
rWww Findmortgagehomemortgages Tag Global Domains Find Mortgage Home Mortgages 动态调用动态语言,第 2 部分: 在运行时寻找、执行和修改脚本m x Forex zWww Findmortgagehomemortgages Tag Global Domains Find Mortgage Home Mortgages 动态调用动态语言,第 2 部分: 在运行时寻找、执行和修改脚本z Find Mortgage Home Mortgages