每日一得

          不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發(fā)
          最近關(guān)心的內(nèi)容:SSH,seam,flex,敏捷,TDD
          本站的官方站點(diǎn)是:顛覆軟件

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            220 隨筆 :: 9 文章 :: 421 評(píng)論 :: 0 Trackbacks
          key words : beanShell ,動(dòng)態(tài)腳本

          原來(lái)第一次是在osworkflow中聽說(shuō)過beanShell,最近又碰到,感覺還是挺有用的,比如對(duì)于我來(lái)說(shuō)我就想有一些class文件拿過來(lái)直接調(diào)用看看,但有不想搭建一個(gè)麻煩的環(huán)境,而beanshell就可以滿足我這個(gè)需求。

          假設(shè)我欲調(diào)用的java為MyShit
          package?com.app;

          public?class?MyShit
          {
          ????
          static{
          ????????System.out.println(
          "this?is?in?static?blog");
          ????}

          ????
          public?static?void?main(String[]?args){
          ????????System.out.println(
          "this?is?in?main?method?:?hello?shit");
          ????}

          ????
          public?void?shit(){
          ????????System.out.println(
          "hello?shit!!!");
          ????}


          ????
          public?static?void?haha(){
          ????????System.out.println(
          "this?is?static?method?haha");
          ????}

          }


          javac ...
          java ..

          在dos中設(shè)置classpath,指向該class文件

          set classpath=%classpath%;c:\beanshell

          編寫一個(gè) bsh的bat文件,便于dos直接調(diào)用beanshell腳本
          ?
          java?bsh.Interpreter?%1


          編寫一個(gè)test.bsh腳本
          //mytest
          import?com.app.*;

          print(
          "hello,it's?a?beanShell?test");

          List?list??
          =?new?ArrayList();
          list.add(
          "111");
          list.add(
          "222");
          list.add(
          "333");

          print(
          "the?list?=?"?+?list);

          Date?date?
          =?new?Date();
          print(
          "the?date?=?"?+?date);

          //method?test

          add(?a,?b?)?
          {
          ????
          return?a?+?b;
          }


          foo?
          =?add(1,?2);????????????//?3
          print("foo?=?"?+?foo);
          foo?
          =?add("Oh",?"?baby");???//?"Oh?baby"
          print("foo?=?"?+?foo);

          //about?object
          foo()?{
          ????print(
          "foo");
          ????x
          =5;

          ????bar()?
          {
          ????????print(
          "foo's?method?bar()");
          ????}


          ????
          return?this;
          }


          myfoo?
          =?foo();????//?prints?"foo"
          print(?myfoo.x?);?//?prints?"5"
          myfoo.bar();??????//?prints?"bar"

          MyShit?shit?
          =?new?MyShit();
          shit.shit();
          shit.main(
          null);
          print(
          "do?you?shit");

          //MyShit.haha();


          在dos下運(yùn)行 bsh test.bsh就OK了

          另外,beanshell作為動(dòng)態(tài)腳本語(yǔ)言可以結(jié)合 spring2.0的新特性,你新寫的業(yè)務(wù)類可以直接修改而不用重新發(fā)布,怎么樣,是不是比較方便,詳細(xì)操作請(qǐng)參考Springframework 2.0 與 ZK 混合開發(fā)實(shí)例

          試一試!

          詳細(xì)使用請(qǐng)參考官方文檔
          posted on 2007-01-09 20:01 Alex 閱讀(6525) 評(píng)論(7)  編輯  收藏 所屬分類: beanshell

          評(píng)論

          # re: beanShell不錯(cuò) 2007-01-09 21:00 123steel
          beanshell作為動(dòng)態(tài)腳本語(yǔ)言可以結(jié)合 spring2.0的新特性,你新寫的業(yè)務(wù)類可以直接修改而不用重新發(fā)布? 這里說(shuō)的“不用重新發(fā)布”?是何意  回復(fù)  更多評(píng)論
            

          # re: beanShell不錯(cuò) 2007-01-10 12:37 Alex
          比如ServiceImplBsh.bsh是IService的實(shí)現(xiàn),如果是java的實(shí)現(xiàn)你修改完后必須重新編譯,重新部署,動(dòng)態(tài)腳本則可以無(wú)需編譯,類似于php。 其實(shí)也是spring的一個(gè)定式刷新而已。

          如果你愿意,其實(shí)java自己也可以采用動(dòng)態(tài)刷新,只不過沒有什么人這么做。  回復(fù)  更多評(píng)論
            

          # re: beanShell不錯(cuò)[未登錄] 2009-02-09 16:37 test
          直接groovy?  回復(fù)  更多評(píng)論
            

          # re: beanShell不錯(cuò) 2009-04-14 00:03 lxy
          那么這個(gè)會(huì)提高開發(fā)效率,不過我想知道未來(lái)系統(tǒng)上線,是不是真的就在支持beanshell的服務(wù)器上發(fā)布這些bsh文件?還是僅僅作為開發(fā)時(shí)候提高效率的工具,正式發(fā)布的時(shí)候改成標(biāo)準(zhǔn)class文件(這種修改量也是不小)?一方面應(yīng)用服務(wù)器可能不認(rèn)識(shí).bsh文件,另一方面用這個(gè)的人畢竟少,后續(xù)的維護(hù)工作顯得難度比較大  回復(fù)  更多評(píng)論
            

          # re: beanShell不錯(cuò) 2009-10-13 14:47 淡淡的
          垃圾  回復(fù)  更多評(píng)論
            

          # re: beanShell不錯(cuò) 2009-11-15 21:10 no1
          beanshell很不錯(cuò),可以快速驗(yàn)證一些Java代碼,不用開IDE,不用編譯;
          但如果要?jiǎng)討B(tài)加載的話,開發(fā)階段,還是JRebel更好。  回復(fù)  更多評(píng)論
            

          # re: beanShell不錯(cuò) 2009-11-15 21:11 no1
          beanshell相對(duì)于groovy、scala等有一個(gè)特點(diǎn)就是啟動(dòng)飛快;  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 金湖县| 吉安市| 乌恰县| 洛南县| 雷波县| 菏泽市| 固镇县| 绥宁县| 岑巩县| 和龙市| 四子王旗| 昭觉县| 河曲县| 宣恩县| 永胜县| 东莞市| 绵竹市| 铁岭市| 贺州市| 旬阳县| 疏勒县| 比如县| 泸西县| 衢州市| 肇东市| 格尔木市| 房山区| 关岭| 平罗县| 潜江市| 建瓯市| 迁安市| 台北县| 米易县| 东乡县| 开原市| 天台县| 威海市| 赤水市| 元阳县| 东至县|