<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    每日一得

    不求多得,只求一得 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 閱讀(2666) 評論(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?  回復  更多評論
      

    主站蜘蛛池模板: 中文字幕免费人成乱码中国| 免费日本黄色网址| 亚洲一区二区三区深夜天堂| 中文字幕在线观看免费视频| 亚洲国产综合专区电影在线| 国产在线播放线91免费| 亚洲午夜无码AV毛片久久| 三年片在线观看免费观看大全中国| 国产乱人免费视频| 免费一级毛片在线播放视频免费观看永久 | 热99re久久精品精品免费| 亚洲欧美日韩中文高清www777| 免费黄色网址入口| 日韩精品亚洲专区在线影视| 国产老女人精品免费视频| 亚洲a无码综合a国产av中文| 免费萌白酱国产一区二区| 成人在线免费视频| 亚洲综合色成在线播放| 日韩电影免费在线观看网站| 亚洲av伊人久久综合密臀性色| 无码国产精品一区二区免费模式 | 久久精品女人天堂AV免费观看| 亚洲精品人成网在线播放影院| 四虎成人免费观看在线网址 | aa午夜免费剧场| 亚洲精品国产品国语在线| 无码A级毛片免费视频内谢| 亚洲理论片中文字幕电影| 欧美a级成人网站免费| 欧美激情综合亚洲一二区| 亚洲国产一级在线观看| a视频免费在线观看| 亚洲精品美女在线观看播放| 欧美日韩国产免费一区二区三区| 亚洲丁香婷婷综合久久| 国产成人精品久久亚洲| 久久免费福利视频| 2017亚洲男人天堂一| 免费a级毛片永久免费| 国产一级a毛一级a看免费人娇|