diggbag

          BlogJava 聯系 聚合 管理
            0 Posts :: 13 Stories :: 6 Comments :: 0 Trackbacks

          1.使用背景:項目中想使用規則引擎,調研后發現流行的開源規則引擎都比較重量級,考慮到項目只需要通過配置文件設定規則集,故使用java動態使用groovy即可達到目的;

          2.通過以下方式配置spring使用groovy,和采用java編程沒有太大區別,groovy提供較平順的從java過來的學習曲線,下面的例子中的groovy類活生生就是一個java類,只不過是寫在xml文件中的java類罷了;

          3.spring通過org.springframework.scripting.groovy.GroovyScriptFactory類反射生成groovy類,由于使用到jdk的動態代理,所以所有用groovy定義的類必須實現java定義的接口,這是可以運行的關鍵;

          4.配置spring.xml

          <beans xmlns="http://www.springframework.org/schema/beans"
            xmlns:lang="http://www.springframework.org/schema/lang"
           xsi:schemaLocation="
                  http://www.springframework.org/schema/beans
                  http://www.springframework.org/schema/beans/spring-beans.xsd
                  http://www.springframework.org/schema/lang
                  http://www.springframework.org/schema/lang/spring-lang-2.5.xsd
            "
           default-autowire="byName">

          此文件頭必不可少,否則無法識別lang標簽;

          <lang:groovy id="groovyHello" >
            <lang:inline-script>
                  <![CDATA[
                  package com.jd.fms;
                      import com.jd.fms.netty.GroovyHelloWorld;
                      public class TestGroovyHelloWorld implements GroovyHelloWorld{
              public void doit(){
              System.out.println("hello world");
              }
             }
                  ]]>
              </lang:inline-script>
           </lang:groovy>

          采用lang:groovy定義groovy片段,當然也可以采用

          <lang:groovy id=" script-source="....">的方式引入文件。
          不要忘記的是在工程中定義GroovyHelloWorld的接口,該接口需要實現一個doit方法。
          5.項目中直接通過
          @Autowired
           GroovyHelloWorld groovyHelloWorld;
          調用即可;
          6.groovy為java提供了很好的動態語言能力,如果項目沒有必要使用太重量級的規則引擎,
          那么使用動態語言讓業務人員直接配置也不失為一個好方法。

           

          posted on 2012-04-10 17:55 哲同 閱讀(1990) 評論(0)  編輯  收藏 所屬分類: java相關
          主站蜘蛛池模板: 西乌珠穆沁旗| 孟村| 临西县| 松潘县| 广丰县| 通榆县| 荥经县| 车险| 淮北市| 松潘县| 蓝田县| 乌鲁木齐市| 洮南市| 永兴县| 禄丰县| 马龙县| 昭平县| 象州县| 安塞县| 西畴县| 广州市| 高青县| 寻乌县| 桦川县| 巨鹿县| 灵川县| 芜湖市| 泽普县| 安阳市| 柏乡县| 湖北省| 宁武县| 沐川县| 大港区| 柳州市| 玉屏| 和顺县| 望城县| 达孜县| 苗栗市| 五常市|