每日一得

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks
          key words: bea world2006? ,workshop studio, 快速開發

          bea world 2006 北京已經過去好幾天了,早就想記錄一下一直忙? :)

          這次參會之行還是有所收獲,主題雖然是SOA,但是我對這個現在倒是沒什么特別的關注,畢竟這個和公司選用的產品有關系,我們這邊公司現在用的Oracle的比較多。

          最吸引我的是它的一款開發工具 : workshop studio 3.2

          這個工具基于Eclipse,同時集成了Spring,hibernate,Struts,JSF,Ajax,關鍵的是開發界面效果很棒,支持自動生成,運用Xray掃描技術,在頁面可以做到自動提醒。

          我個人一直使用IntelliJ IDEA 5,感覺IDEA的編寫java代碼確實很強,包括xp能力,但是看他的jsp編寫能力實在是太弱了,雖然也支持語法級別的提示,但是這個是遠遠不夠的,我們需要的是WYSIWYG,這方面workshop studio給了我一個滿意的效果.

          可以通過ResourceBundle切換界面語言

          workshop-studio-english.jpg

          也可以在界面切換到中文:

          workshop-studio.jpg


          可以在DbXplorer界面里根據schema自動生成hibernate的O/R mapping文件,包括Domain,也包括dao接口以及實現哦:
          workshop-studio-hibernate.jpg


          看一下向導生成的dao實現 :

          public?class?UserRoleSpringService?implements?IUserRoleService?{
          ????
          /**
          ?????*?The?dao?instance?injected?by?Spring.
          ?????
          */

          ????
          private?IUserRoleDao?dao;
          ????
          /**
          ?????*?The?service?Spring?bean?id,?used?in?the?applicationContext.xml?file.
          ?????
          */

          ????
          private?static?final?String?SERVICE_BEAN_ID?=?"UserRoleService";
          ????
          ????
          public?UserRoleSpringService()?{
          ????????
          super();
          ????}

          ????
          /**
          ?????*?Returns?the?singleton?<code>IUserRoleService</code>?instance.
          ?????
          */

          ????
          public?static?IUserRoleService?getInstance(ApplicationContext?context)?{
          ????????
          return?(IUserRoleService)context.getBean(SERVICE_BEAN_ID);
          ????}


          ????
          /**
          ?????*?Find?an?entity?by?its?id?(primary?key).
          ?????*?
          @return?The?found?entity?instance?or?null?if?the?entity?does?not?exist.
          ?????
          */

          ????
          public?UserRole?findUserRoleById(Integer?id)?throws?MyException?{
          ????????
          try?{
          ????????????
          return?getDao().findUserRoleById(id);
          ????????}
          ?catch?(RuntimeException?e)?{
          ????????????
          throw?new?MyException("findUserRoleById?failed?with?the?id?"?+?id?+?":?"?+?e.getMessage());
          ????????}

          ????}

          ????
          /**
          ?????*?Return?all?persistent?instances?of?the?<code>UserRole</code>?entity.
          ?????
          */

          ????
          public?List?findAllUserRoles()?throws?MyException?{
          ????????
          try?{
          ????????????
          return?getDao().findAllUserRoles();
          ????????}
          ?catch?(RuntimeException?e)?{
          ????????????
          throw?new?MyException("findAllUserRoles?failed:?"?+?e.getMessage());
          ????????}

          ????}

          ????
          /**
          ?????*?Return?the?persistent?entities?matching?the?given?example?entity.
          ?????
          */

          ????
          public?List?findUserRolesByExample(UserRole?userRole)?throws?MyException?{
          ????????
          try?{
          ????????????
          return?getDao().findByExample(userRole);
          ????????}
          ?catch?(RuntimeException?e)?{
          ????????????
          throw?new?MyException("findUserRolesByExample?failed:?"?+?e.getMessage());
          ????????}

          ????}

          ????
          /**
          ?????*?Make?the?given?instance?managed?and?persistent.
          ?????
          */

          ????
          public?void?persistUserRole(UserRole?userRole)?throws?MyException?{
          ????????
          try?{
          ????????????getDao().persistUserRole(userRole);
          ????????}
          ?catch?(RuntimeException?e)?{
          ????????????
          throw?new?MyException("persistUserRole?failed:?"?+?e.getMessage());
          ????????}

          ????}

          ????
          /**
          ?????*?Remove?the?given?persistent?instance.
          ?????
          */

          ????
          public?void?removeUserRole(UserRole?userRole)?throws?MyException?{
          ????????
          try?{
          ????????????getDao().removeUserRole(userRole);
          ????????}
          ?catch?(RuntimeException?e)?{
          ????????????
          throw?new?MyException("removeUserRole?failed:?"?+?e.getMessage());
          ????????}

          ????}


          ????
          /**
          ?????*?Find?an?entity?by?its?id?(primary?key).
          ?????*?
          @return?The?found?entity?instance?or?null?if?the?entity?does?not?exist.
          ?????
          */

          ????
          public?ZionRole?findZionRoleById(Integer?id)?throws?MyException?{
          ????????
          try?{
          ????????????
          return?getDao().findZionRoleById(id);
          ????????}
          ?catch?(RuntimeException?e)?{
          ????????????
          throw?new?MyException("findZionRoleById?failed?with?the?id?"?+?id?+?":?"?+?e.getMessage());
          ????????}

          ????}

          ????
          /**
          ?????*?Return?all?persistent?instances?of?the?<code>ZionRole</code>?entity.
          ?????
          */

          ????
          public?List?findAllZionRoles()?throws?MyException?{
          ????????
          try?{
          ????????????
          return?getDao().findAllZionRoles();
          ????????}
          ?catch?(RuntimeException?e)?{
          ????????????
          throw?new?MyException("findAllZionRoles?failed:?"?+?e.getMessage());
          ????????}

          ????}

          ????
          /**
          ?????*?Return?the?persistent?entities?matching?the?given?example?entity.
          ?????
          */

          ????
          public?List?findZionRolesByExample(ZionRole?zionRole)?throws?MyException?{
          ????????
          try?{
          ????????????
          return?getDao().findByExample(zionRole);
          ????????}
          ?catch?(RuntimeException?e)?{
          ????????????
          throw?new?MyException("findZionRolesByExample?failed:?"?+?e.getMessage());
          ????????}

          ????}

          ????
          /**
          ?????*?Make?the?given?instance?managed?and?persistent.
          ?????
          */

          ????
          public?void?persistZionRole(ZionRole?zionRole)?throws?MyException?{
          ????????
          try?{
          ????????????getDao().persistZionRole(zionRole);
          ????????}
          ?catch?(RuntimeException?e)?{
          ????????????
          throw?new?MyException("persistZionRole?failed:?"?+?e.getMessage());
          ????????}

          ????}

          ????
          /**
          ?????*?Remove?the?given?persistent?instance.
          ?????
          */

          ????
          public?void?removeZionRole(ZionRole?zionRole)?throws?MyException?{
          ????????
          try?{
          ????????????getDao().removeZionRole(zionRole);
          ????????}
          ?catch?(RuntimeException?e)?{
          ????????????
          throw?new?MyException("removeZionRole?failed:?"?+?e.getMessage());
          ????????}

          ????}


          ????
          /**
          ?????*?Find?an?entity?by?its?id?(primary?key).
          ?????*?
          @return?The?found?entity?instance?or?null?if?the?entity?does?not?exist.
          ?????
          */

          ????
          public?ZionUser?findZionUserById(Integer?id)?throws?MyException?{
          ????????
          try?{
          ????????????
          return?getDao().findZionUserById(id);
          ????????}
          ?catch?(RuntimeException?e)?{
          ????????????
          throw?new?MyException("findZionUserById?failed?with?the?id?"?+?id?+?":?"?+?e.getMessage());
          ????????}

          ????}

          ????
          /**
          ?????*?Return?all?persistent?instances?of?the?<code>ZionUser</code>?entity.
          ?????
          */

          ????
          public?List?findAllZionUsers()?throws?MyException?{
          ????????
          try?{
          ????????????
          return?getDao().findAllZionUsers();
          ????????}
          ?catch?(RuntimeException?e)?{
          ????????????
          throw?new?MyException("findAllZionUsers?failed:?"?+?e.getMessage());
          ????????}

          ????}

          ????
          /**
          ?????*?Return?the?persistent?entities?matching?the?given?example?entity.
          ?????
          */

          ????
          public?List?findZionUsersByExample(ZionUser?zionUser)?throws?MyException?{
          ????????
          try?{
          ????????????
          return?getDao().findByExample(zionUser);
          ????????}
          ?catch?(RuntimeException?e)?{
          ????????????
          throw?new?MyException("findZionUsersByExample?failed:?"?+?e.getMessage());
          ????????}

          ????}

          ????
          /**
          ?????*?Make?the?given?instance?managed?and?persistent.
          ?????
          */

          ????
          public?void?persistZionUser(ZionUser?zionUser)?throws?MyException?{
          ????????
          try?{
          ????????????getDao().persistZionUser(zionUser);
          ????????}
          ?catch?(RuntimeException?e)?{
          ????????????
          throw?new?MyException("persistZionUser?failed:?"?+?e.getMessage());
          ????????}

          ????}

          ????
          /**
          ?????*?Remove?the?given?persistent?instance.
          ?????
          */

          ????
          public?void?removeZionUser(ZionUser?zionUser)?throws?MyException?{
          ????????
          try?{
          ????????????getDao().removeZionUser(zionUser);
          ????????}
          ?catch?(RuntimeException?e)?{
          ????????????
          throw?new?MyException("removeZionUser?failed:?"?+?e.getMessage());
          ????????}

          ????}


          ????
          /**
          ?????*?Called?by?Spring?using?the?injection?rules?specified?in?
          ?????*?the?Spring?beans?file?"applicationContext.xml".
          ?????
          */

          ????
          public?void?setDao(IUserRoleDao?dao)?{
          ????????
          this.dao?=?dao;
          ????}

          ????
          public?IUserRoleDao?getDao()?{
          ????????
          return?this.dao;
          ????}

          }


          我現在的策略基本上就是用IDEA開發后臺代碼,而pojo,dao,daoImpl的自動生成,以及web/jsp/ajax都是通過workshop studio來做,感覺不錯哦,你還不心動??? :)

          詳情請參看官方網站? : http://workshopstudio.bea.com/index.html



          再來一張在現場Bea的工程師Peter的一張照片,左邊的是me? :)

          bea_peter.JPG


          Peter給我留下了深刻的印象,技術嫻熟,為人熱情,互動也棒,說到興奮處來一個響指,讓你感覺到作開發也是如此的享受,和國內的開發氛圍截然不可同日而語。說到這就多羅嗦幾句,國內的開發氛圍我感覺就是半死不活,用如下幾個關鍵字做一個概括就是 : 不敬業,冷漠,不專業,不規范,無體系,不受重視,自己看不起自己,別人也看不起自己,自己認為自己像個傻B,結果自己真的變為一個傻B.

          記住,主動權永遠在你自己手里,你想成為什么你就會變成什么.

          當寒流到來時你是什么心態? 強者的邏輯是:來得更猛烈些,來年春天地上會堆滿尸體.

          posted on 2006-12-20 11:39 Alex 閱讀(2669) 評論(10)  編輯  收藏 所屬分類: web技術

          評論

          # re: workshop studio震撼你的開發效率 [bea world2006 歸來,談感受,發牢騷] 2006-12-20 17:01 quietywind[匿名]
          MyEclipse也是一樣可以做的,BEA我也去了,感覺大部分都是在忽悠。
          在講workshop studio的時候,居然把自動糾錯都當作是自己的特色了,無語了。
          不過感覺Peter講的確實挺不錯的,很有激情,知識也很豐富。  回復  更多評論
            

          # re: workshop studio震撼你的開發效率 [bea world2006 歸來,談感受,發牢騷] 2006-12-20 18:02 anonymous
          整個一大雜燴,基本上裝一些開源插件就有差不多的效果。看看netbeans的visual webpack吧。  回復  更多評論
            

          # re: workshop studio震撼你的開發效率 [bea world2006 歸來,談感受,發牢騷] 2006-12-20 19:06 BeanSoft
          Bea 收購的 M7... Bea 跟 Google 一樣, 善于收購潛力股. Netbeans 的 Visual Webpack 偶覺得比起 WTP 來, 貌似含金量要多一點點.  回復  更多評論
            

          # re: workshop studio震撼你的開發效率 [bea world2006 歸來,談感受,發牢騷] 2006-12-21 10:05 Alex
          關于自動糾錯你誤解了,他不是一般的方法調用語法的糾錯,是字符串的糾錯,比如你在struts下的jsp里寫<form action="myAction" >里的時候他的Xray會根據struts的配置文件檢查你的惡myAction是不是存在,如果不存在會提示,而一般的開發工具不支持,因為它僅僅知道是個字符串,只有在運行的時候才會檢查。 這個應該很人性化的.

          關于netbeans也有一些問題,現在在開發工具界netbeans出境比較尷尬,因為總體來看eclipse是主流,已經成為了某種意義上的通用平臺(盡管有許多人不服),所以從這個覺得上看bea在戰略上還是處于主動的  回復  更多評論
            

          # re: workshop studio震撼你的開發效率 [bea world2006 歸來,談感受,發牢騷] 2006-12-21 11:56 hejianhuacn
          缺的就是好的示例代碼  回復  更多評論
            

          # re: workshop studio震撼你的開發效率 [bea world2006 歸來,談感受,發牢騷] 2006-12-22 10:22 keith
          workshop studio很久以前就用了,感覺一級棒。糾錯的確是它的亮點,這點在你使用時就可以體會到了。
          更好的是它整合了主流的框架,struts、spring、hibernate等等。
          值得一提的還有它的Xray  回復  更多評論
            

          # re: workshop studio震撼你的開發效率 [bea world2006 歸來,談感受,發牢騷] 2006-12-22 12:56 Alex
          目前每個都有示例代碼,不過不是本地的,你必須通過向導從bea的官方站點download,我剛開始的時候下了N次都沒有下好,跟peter說他在自己機器上試是好的,后來我回去又試了幾次,居然好了 :)  回復  更多評論
            

          # re: workshop studio震撼你的開發效率 [bea world2006 歸來,談感受,發牢騷] 2006-12-24 20:32 zhangyafei
          不敬業,冷漠,不專業,不規范,無體系,不受重視,自己看不起自己,別人也看不起自己,自己認為自己像個傻B,結果自己真的變為一個傻B.

          。。。。。。。

          當寒流到來時你是什么心態? 強者的邏輯是:來得更猛烈些,來年春天地上會堆滿尸體.



          特別有意思。  回復  更多評論
            

          # re: workshop studio震撼你的開發效率 [bea world2006 歸來,談感受,發牢騷] 2007-01-23 17:33 jane_wu
          看了照片我恍然大悟,原來就是你:)  回復  更多評論
            

          # re: workshop studio震撼你的開發效率 [bea world2006 歸來,談感受,發牢騷] 2007-05-13 15:39 亮亮
          請問樓主workshop 用hibernate 的時候如何自己生成DAO?我怎么只能生成model?  回復  更多評論
            

          主站蜘蛛池模板: 禄丰县| 重庆市| 蚌埠市| 远安县| 开化县| 登封市| 静安区| 新闻| 巨鹿县| 盐池县| 九寨沟县| 茶陵县| 屯留县| 商水县| 大同县| 崇义县| 大厂| 新化县| 咸阳市| 浦江县| 荥经县| 车险| 兴化市| 四会市| 年辖:市辖区| 濮阳市| 沙洋县| 会同县| 吴川市| 临湘市| 乐安县| 张家港市| 凤凰县| 永春县| 长乐市| 昌黎县| 贵德县| 海口市| 石城县| 宁国市| 克东县|