WEB开发网
开发学院软件开发Java 动态调用动态语言,第 2 部分: 在运行时寻找、执行... 阅读

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

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: ScriptMortgageQualifierRunner 中的 main() 方法搜索命令行上提供的脚本文件目录,如果这个目录存在,动态调用动态语言,第 2 部分: 在运行时寻找、执行和修改脚本(6),就用目录的 File 对象设置一个静态变量,并调用 run() 方法执行进一步的处理,脚本中

ScriptMortgageQualifierRunner 中的 main() 方法搜索命令行上提供的脚本文件目录,如果这个目录存在,就用目录的 File 对象设置一个静态变量,并调用 run() 方法执行进一步的处理。

run() 方法对 清单 1 中的 ScriptMortgageQualifier 类进行实例化,然后用一个无限循环调用内部方法 runQualifications(),测试四个贷款人/贷款场景。这个无限循环模拟连续的抵押申请处理。这个循环让我们可以在脚本目录中添加或修改脚本文件(抵押贷款产品),这些修改会动态地生效,不需要停止应用程序。因为这个应用程序的业务逻辑放在外部脚本中,所以可以在运行时动态地修改业务逻辑。

对于脚本目录中的每个脚本文件,runQualifications() helper 方法分别调用 ScriptMortgageQualifer.qualifyMortgage 一次。每个调用前面有一系列打印语句,它们输出脚本文件和贷款人的相关信息;调用之后,用打印语句显示结果,即贷款人是否符合抵押产品的要求。脚本代码使用共享的 MortgageQualificationResult Java 对象返回其结果,检查这个对象的属性就可以判断贷款人是否合格。

本文的源代码 ZIP 文件包含三个用 Groovy、JavaScript 和 Ruby 编写的脚本文件示例。它们分别代表一种标准的 30 年期固定利率抵押贷款产品。脚本中的代码判断贷款人是否符合这种抵押类型的要求,然后通过调用脚本引擎 put() 方法中提供的共享全局变量 result 来返回结果。全局变量 result 是 MortgageQualificationResult 类的实例(部分代码见清单 3)。


清单 3. MortgageQualificationResult 类
public class MortgageQualificationResult { 
  private boolean qualified; 
  private double interestRate; 
  private String message; 
  private String productName; 
 
  // .. Standard setters and getters not shown. 
}

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:动态 调用 动态

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接