當(dāng)前位置:

Java專業(yè)語(yǔ)言輔導(dǎo):動(dòng)態(tài)調(diào)用動(dòng)態(tài)語(yǔ)言之Java腳本API(2)

發(fā)表時(shí)間:2015/8/28 11:39:38 來(lái)源:互聯(lián)網(wǎng) 點(diǎn)擊關(guān)注微信:關(guān)注中大網(wǎng)校微信
關(guān)注公眾號(hào)

Java 腳本 API

腳本與動(dòng)態(tài)的對(duì)比

術(shù)語(yǔ)腳本 通常表示在解釋器 shell 中運(yùn)行的語(yǔ)言,它們往往沒(méi)有單獨(dú)的編譯步驟。術(shù)語(yǔ)動(dòng)態(tài) 通常表示等到運(yùn)行時(shí)判斷變量類型或?qū)ο笮袨榈恼Z(yǔ)言,往往具有閉包和連續(xù)特性。一些通用的編程語(yǔ)言同時(shí)具有這兩種特性。此處首選腳本語(yǔ)言 是因?yàn)楸疚牡闹攸c(diǎn)是 Java 腳本 API,而不是因?yàn)樘峒暗恼Z(yǔ)言缺少動(dòng)態(tài)特性。

2006 年 10 月,Java 語(yǔ)言添加了腳本包,從而提供了一種統(tǒng)一的方式將腳本語(yǔ)言集成到 Java 應(yīng)用程序中去。對(duì)于語(yǔ)言開(kāi)發(fā)人員,他們可以使用這個(gè)包編寫(xiě)粘連代碼(glue code),從而使人們能夠在 Java 應(yīng)用程序中調(diào)用他們的語(yǔ)言。對(duì)于 Java 開(kāi)發(fā)人員,腳本包提供了一組類和接口,允許使用一個(gè)公共 API 調(diào)用多種語(yǔ)言編寫(xiě)的腳本。因此,腳本包類似于不同語(yǔ)言(比如說(shuō)不同的數(shù)據(jù)庫(kù))中的 Java Database Connectivity (JDBC) 包,可以使用一致的接口集成到 Java 平臺(tái)中去。

以前,在 Java 代碼中,動(dòng)態(tài)調(diào)用腳本語(yǔ)言涉及到使用各種語(yǔ)言發(fā)行版所提供的獨(dú)特類或使用 Apache 的 Jakarta Bean Scripting Framework (BSF)。BSF 在一個(gè) API 內(nèi)部統(tǒng)一了一組腳本語(yǔ)言(請(qǐng)參閱 參考資料)。使用 Java SE 6 腳本 API,二十余種腳本語(yǔ)言(AppleScript、Groovy、JavaScript、Jelly、PHP、Python、Ruby 和 Velocity)都可以集成到 Java 代碼中,這在很大程序上依賴的是 BSF。

腳本 API 在 Java 應(yīng)用程序和外部腳本之間提供了雙向可見(jiàn)性。Java 代碼不僅可以調(diào)用外部腳本,而且還允許那些腳本訪問(wèn)選定的 Java 對(duì)象。比如說(shuō),外部 Ruby 腳本可以對(duì) Java 對(duì)象調(diào)用方法,并訪問(wèn)對(duì)象的屬性,從而使腳本能夠?qū)⑿袨樘砑拥竭\(yùn)行中的應(yīng)用程序中(如果在開(kāi)發(fā)時(shí)無(wú)法預(yù)計(jì)應(yīng)用程序的行為)。

調(diào)用外部腳本可用于運(yùn)行時(shí)應(yīng)用程序增強(qiáng)、配置、監(jiān)控或一些其他的運(yùn)行時(shí)操作,比如說(shuō)在不停止應(yīng)用程序的情況下修改業(yè)務(wù)規(guī)則。腳本包可能的作用包括:

·在比 Java 語(yǔ)言更簡(jiǎn)單的語(yǔ)言中編寫(xiě)業(yè)務(wù)規(guī)則,而不用借助成熟的規(guī)則引擎。

·創(chuàng)建插件架構(gòu),使用戶能夠動(dòng)態(tài)地定制應(yīng)用程序。

·將已有腳本集成到 Java 應(yīng)用程序中,比如說(shuō)處理或轉(zhuǎn)換文件文章的腳本。

·使用成熟的編程語(yǔ)言(而不是屬性文件)從外部配置應(yīng)用程序的運(yùn)行時(shí)行為。

·在 Java 應(yīng)用程序中添加一門(mén)特定于域的語(yǔ)言(domain-specific language)。

·在開(kāi)發(fā) Java 應(yīng)用程序原型的過(guò)程中使用腳本語(yǔ)言。

·在腳本語(yǔ)言中編寫(xiě)應(yīng)用程序測(cè)試代碼。

編輯推薦

JAVA認(rèn)證考試報(bào)考指南 / 更多JAVA考試資料

(責(zé)任編輯:zyc)

2頁(yè),當(dāng)前第1頁(yè)  第一頁(yè)  前一頁(yè)  下一頁(yè)
最近更新 考試動(dòng)態(tài) 更多>