小編給大家分享一下在Java中如何使用groovy語言作為動態(tài)規(guī)則表達式,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
10年的博湖網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都營銷網(wǎng)站建設的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整博湖建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)建站從事“博湖網(wǎng)站設計”,“博湖網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
由于在工作流設計中需要為條件分支設定條件表達式,所以需要可以動態(tài)執(zhí)行的語言腳本作為工作流的規(guī)則引擎.工作流條件分支純粹使用sql腳本肯定是不行的,經(jīng)過試驗,groovy的腳本可以返回為java接受的變量.在具體的工作流實現(xiàn)中,我們既可以把groovy的腳本單獨存放在文本文件,也可以將腳本直接存放在數(shù)據(jù)庫中,在使用的時候再取出來,當然,可可以放在xml文件中.
以下是java調(diào)用groovy腳本的實例:
package org.openjweb.core.groovy.test; import groovy.lang.GroovyClassLoader; import java.io.File; public class InvokeGroovy { public static void main(String[] args) { ClassLoader cl = new InvokeGroovy().getClass().getClassLoader(); GroovyClassLoader groovyCl = new GroovyClassLoader(cl); try { //從文件中讀取 //Class groovyClass = groovyCl.parseClass(new File("D:/project/openjweb/src/java/org/openjweb/groovy/Foo.groovy")); //直接使用Groovy字符串,也可以獲得正確結果 //Class groovyClass = groovyCl.parseClass("package org.openjweb.groovy; \r\n import org.openjweb.core.groovy.test.IFoo;\r\n class Foo implements IFoo {public Object run(Object foo) {return 23}}"); Class groovyClass = groovyCl.parseClass("package org.openjweb.groovy; \r\n import org.openjweb.core.groovy.test.IFoo;\r\n class Foo implements IFoo {public Object run(Object foo) {return 2+2>1}}");//這個返回true IFoo foo = (IFoo) groovyClass.newInstance(); System.out.println(foo.run(new Integer(2))); } catch (Exception e) { e.printStackTrace(); } } }
下面是Foo.groovy的文本:
package org.openjweb.groovy; import org.openjweb.core.groovy.test.IFoo; class Foo implements IFoo { public Object run(Object foo) { return 3+2 } }
從上面的代碼看出,可以直接執(zhí)行字符串的groovy腳本,運行后返回運算結果,例如2+2>1會返回true.
使用Groovy或 Jruby動態(tài)語言腳本作為規(guī)則引擎解決方案將會越來越普及.
以上是“在Java中如何使用groovy語言作為動態(tài)規(guī)則表達式”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!