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 哲同 閱讀(1994) 評論(0)  編輯  收藏 所屬分類: java相關
          主站蜘蛛池模板: 藁城市| 康马县| 周口市| 巴东县| 杭锦旗| 高邑县| 大化| 那曲县| 木兰县| 成都市| 珲春市| 菏泽市| 宁远县| 项城市| 永康市| 通山县| 南京市| 龙胜| 台北市| 游戏| 博客| 巴彦县| 昭苏县| 永福县| 友谊县| 象州县| 长子县| 南充市| 金湖县| 荣昌县| 涿州市| 花垣县| 景东| 滁州市| 钟祥市| 林芝县| 高尔夫| 商都县| 柳林县| 宁波市| 南陵县|