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

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

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

    京山游俠

    專注技術,拒絕扯淡
    posts - 50, comments - 868, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    SpringSide 3 的進步

    Posted on 2008-12-05 18:09 京山游俠 閱讀(21708) 評論(33)  編輯  收藏 所屬分類: SpringSide開發實戰
    在SpringSide的官方主頁上,寫著SpringSide 3 中包含的主流組件:Spring 2.5 + Hibernate 3 + Struts 2 + JSP 2.0 + JQuery + JAX-WS 2 (by Apache CXF 2) +SpringSecurity 2.0。不過,如果你認為和SpringSide 2 相比,升級的只是版本號,那么你就大錯特錯了。

    像我這樣從SpringSide 2過來的人,如果能夠詳細對比SpringSide 2 和SpringSide 3,對于我們理解SpringSide 3肯定更加有幫助。下面的內容是我自己的一些體會,不正確的地方歡迎大家指正。

    從主要的架構來,依然是那么幾層,先設計數據庫,再寫Entity層,再寫Dao層,再寫Action,然后使用JSP表現出來,其中的Entity和Dao層和Hibernate緊密相關,Action是Struts的主要部分,Spring作為粘合劑,把這些東西連在一起,并提供了一些機制簡化編寫這些層的工作。SpringSide就是這樣一個大的粘合體,省去了我們自己很多的粘合工作。從SpringSide 2 到SpringSide 3,這些工作得到進一步的簡化,我們開發起來就更爽了。

    我認為,我們的開發模式,主要經歷了這樣的簡化過程:
    第一階段,代碼加一大堆的配置文件
    第二階段,代碼加少量的配置文件
    第三階段,代碼加基本上等于零的配置文件

    這些進步是如何實現的呢?從第一階段到第二階段,主要靠的是Annotation,把一些大量的配置工作轉移到了Java代碼中,那么從第二階段到第三階段怎么實現呢?都已經Annotation了,你還有什么辦法讓配置文件更少?想不到吧!我也想不到,直到我看了SpringSide 3生成的項目,我才知道還有一個好東西叫自動掃描。

    下面使用實際的例子進行說明。作為示例,Hibernate是個不錯的選擇。

    第一階段,如果單獨使用Hibernate,我們每寫一個Entity類,就得同時寫一個.hbm.xml文件,如果有很多Entity,就得寫很多.hbm.xml文件,每修改一次Entity,也要同時記得修改.hbm.xml文件,相當的不方便,其目錄結構如下圖:
    002.PNG

    第二階段,使用Annotation,SpringSide 2 中就是這樣的方式。具體內容可以看我的另一篇博文《打通持久層的任督二脈》。所以我用SpringSide 2? 進行開發的時候,寫Entity也是兩個步驟,但是比第一階段要簡單。就是先寫一個Entity,Entity里面使用Annotation,如下圖:
    003.PNG

    然后修改配置文件,SpringSide 2 中專門為Hibernate的定義開辟了一個專門的xml文件dataAccessContext-hibernate.xml,里面關于SessionFactory的定義是我們很熟悉的。我只需要將我的Entity類加入到里面就可以了,如下圖中紅筆圈出來的部分:
    004.PNG

    第二階段和第一階段相比,配置文件簡單多了,不需要維護那么多的.hbm.xml。但是,每編寫一個Entity,依然需要修改一下配置文件。

    第三階段就更了不起了,零配置文件,也就是說我們只管寫Entity就行了,不需要管配置文件(當然,項目開始的時候還是要配置一次的)。打開SpringSide 3生成的項目,果然找不到dataAccessContext-hibernate.xml文件。那么是如何實現零配置的呢?靠的就是自動掃描,如下圖中紅筆圈出來的部分:
    005.PNG

    上面講Hibernate只是為了舉例說明我的觀點,事實上SpringSide 3 中的零配置可不僅僅只存在這一個地方。

    Dao層也可以不用配置了。在SpringSide 2 中,我們每寫一個Dao,都需要在serviceContext.xml中加入這個類,如下圖:
    006.PNG

    SpringSide 3 中使用自動掃描了,如下圖:
    007.PNG

    以后編寫Service后,再也不用修改配置文件了,只要我們在Service中使用如下Annotation:
    008.PNG

    事務也不用配置了,在SpringSide 2 中,事務是這樣配置的:
    009.PNG

    SpringSide 3 中,事務配置是這樣的:
    010.PNG

    011.PNG

    Action也不用配置了,不過使得Action零配置的代碼卻在web.xml中,如下圖:
    012.PNG

    還記得SpringSide 2 中的Struts配置代碼嗎?編寫完Action類的代碼后,還需要修改兩個配置文件,如下:
    013.PNG

    014.PNG

    所以說,SpringSide 3 的一個優點就是讓生活變得更加簡單了。在以上的截圖中,SpringSide 2 項目用的是Eclipse 3.2,而SpringSide 3項目用的是Eclipse 3.4 For JavaEE Developers。哪一個IDE更爽,那也是一目了然。

    評論

    # re: SpringSide 3 中的新特性  回復  更多評論   

    2008-12-05 18:37 by 虎嘯龍吟
    請多寫寫springSide方面的好文

    # re: SpringSide 3 的進步[未登錄]  回復  更多評論   

    2008-12-05 22:11 by Jimmy
    是阿,期待更多的好文

    # re: SpringSide 3 的進步  回復  更多評論   

    2008-12-05 23:18 by Elvea
    其實我想說的,改進的主要是Spring 2.5的改進,SpringSide目前只是一個很簡單的Demo,我沒有貶低SS的意思。我個人很佩服Calvin的,一個人撐起這么打一片天。
    還有我對Anotation的事務很反感,每個方法都要加上那些注釋,還不如直接在XML上面配來的好。
    我想Spring初學者的進階看SS再好不過了

    # re: SpringSide 3 的進步  回復  更多評論   

    2008-12-08 11:13 by 徐堯
    springside就是一個集成的功能,springside3就是升級了spring而已,改了改配置,springside2才是里程碑

    # re: SpringSide 3 的進步  回復  更多評論   

    2008-12-18 09:21 by Conan Lee
    在SS2的時候,hbm.xml其實也可以這樣配置。
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
    <prop key="hibernate.max_fetch_depth">1</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.connection.characterEncoding">utf8</prop>
    <prop key="hibernate.cache.use_query_cache">true</prop>
    <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
    </props>
    </property>
    <property name="mappingDirectoryLocations">
    <list>
    <value>classpath*:/cn/com/webinfo/model</value>
    </list>
    </property>
    </bean>

    # re: SpringSide 3 的進步  回復  更多評論   

    2008-12-29 11:05 by 什么能力都干寫博客
    其實就是jar的升級,配置文件稍有變化,除此之外,你說說還有什么。
    其實這就是spring的升級,和springside有關系嗎?
    真幼稚,你的技術只停留在這一層面,對框架的使用樂此不疲。
    希望你能升級自己。

    # re: SpringSide 3 的進步  回復  更多評論   

    2009-01-12 19:08 by 江南白衣
    謝謝游俠的好文,和你一比我就像不會寫文檔的一樣:)

    的確所有便利都是Spring,Struts2們升級帶來的,SS3只是與時俱進的更新了自己的演示而已。

    不過這個開源項目經常太監的年代,升級演示也算升級吧,大家不用這么在乎字眼吧:)

    # re: SpringSide 3 的進步[未登錄]  回復  更多評論   

    2009-01-15 17:58 by ken
    很不錯的文章,謝謝作者的分享。
    給:什么能力都干寫博客
    這些升級對于您的技術水平自然是不值一提,但相信還是對很多人有幫助的。相對于樓主的技術水平,我相信您的道德水平擁有更大的升級空間,不妨與樓主功勉,一起升級一下。

    # re: SpringSide 3 的進步  回復  更多評論   

    2009-01-15 18:40 by yzl45
    @什么能力都干寫博客
    你這人真垃圾,人家也就是只是共享,你啥都不寫,啥也不說,就知道諷刺別人,先正人品,在來做技術,再次鄙視你一下!

    # re: SpringSide 3 的進步  回復  更多評論   

    2009-02-20 16:01 by gaozh
    真不錯,非常感謝你的分享

    # re: SpringSide 3 的進步  回復  更多評論   

    2009-03-24 09:31 by 無聊的人
    仔細看了看,覺得跟rapid-framework差不多

    # re: SpringSide 3 的進步  回復  更多評論   

    2009-03-25 09:18 by 初學者
    你到底懂不懂springside這些都是spring2.5里的好不好?是spring2.0的一個升級。不知道不要亂講。

    # re: SpringSide 3 的進步  回復  更多評論   

    2009-04-29 16:48 by bjliuming
    好文章,謝謝!

    # re: SpringSide 3 的進步  回復  更多評論   

    2009-04-30 16:18 by 謝謝
    難得把自己的體會寫的這么詳細的。
    看了很感動。
    “2009-03-25 09:18 by 初學者”這種不懂得尊重別人勞動成果的垃圾有多遠就滾多遠。

    # re: SpringSide 3 的進步  回復  更多評論   

    2009-06-30 20:37 by 學習
    暈,罵人的人真不好。
    提供這么個項目骨架,你們也說三道四的。

    # re: SpringSide 3 的進步  回復  更多評論   

    2009-07-27 10:19 by 謝謝分享
    看完了不回復一下不厚道,罵人的更不厚道。

    # re: SpringSide 3 的進步  回復  更多評論   

    2009-08-17 14:29 by 游客
    支持樓主,鄙視罵人的人
    springside本來就是根據spring來的,看命名就知道了,那些罵人的人,你們太不尊重人家的勞動成果了。spring不也是依賴了一大堆開源包嗎!!

    # re: SpringSide 3 的進步[未登錄]  回復  更多評論   

    2009-12-12 12:06 by 路人甲
    感謝樓主的分享!
    樓主大可不必在乎,那些‘自以為是’的 人的辱罵。
    支持你們的人大有人在,期待著你們進步和突破。

    # re: SpringSide 3 的進步  回復  更多評論   

    2009-12-23 13:39 by study
    支持樓主。學習了。
    那些罵人的人,需要先尊重別人,才能得到別人的尊重。

    # re: SpringSide 3 的進步  回復  更多評論   

    2010-03-04 21:48 by 匿名
    很不錯的資源~~
    學習了··

    # re: SpringSide 3 的進步  回復  更多評論   

    2010-03-31 10:13 by 游客
    springside,我擁護你!

    # re: SpringSide 3 的進步[未登錄]  回復  更多評論   

    2010-04-09 13:26 by Mark
    強烈支持博主!

    # re: SpringSide 3 的進步  回復  更多評論   

    2010-04-12 20:17 by adess
    收藏,不錯。
    不知道大家有沒注意到,用struts2作查詢時,中文會顯示亂碼?是如何解決這個問題的,我用的是springside3, utf-8.

    # re: SpringSide 3 的進步[未登錄]  回復  更多評論   

    2010-06-04 22:05 by kevin
    這個年代有能力的人大有人在,但把自己所知道的寫出來,分享出來的人是很欠缺的。

    支持所有別人在休息玩耍他們默默在做奉獻的人們。

    # re: SpringSide 3 的進步  回復  更多評論   

    2010-06-08 23:59 by qzh
    謝謝樓主分享,

    # re: SpringSide 3 的進步[未登錄]  回復  更多評論   

    2010-07-25 11:26 by leo
    很好

    # re: SpringSide 3 的進步  回復  更多評論   

    2010-08-04 15:42 by cafe
    對比講解,清晰明了。
    支持分享自己的經驗,謝謝分享。

    # re: SpringSide 3 的進步[未登錄]  回復  更多評論   

    2010-09-26 11:21 by Lee
    謝謝你的付出,鄙視罵人者

    # re: SpringSide 3 的進步  回復  更多評論   

    2010-10-17 11:05 by skyxjy
    好文,樓主辛苦了

    # re: SpringSide 3 的進步  回復  更多評論   

    2010-10-25 10:38 by mao
    <property name="packagesToScan" value="xxxxx" />
    <context:component-scan base-package="xxxx" />
    問下樓主,像這倆個自動掃描,如果有多個不同的包放Entity和dao,可以寫多個這樣的配置嗎?怎么區別在不同的包下放entity?

    # re: SpringSide 3 的進步[未登錄]  回復  更多評論   

    2010-11-04 17:35 by 劉強
    支持樓主,寫很好。 希望樓主多出點關于這方的資料。
    謝謝樓主。

    # re: SpringSide 3 的進步[未登錄]  回復  更多評論   

    2010-12-08 08:36 by 如夢初醒
    能夠分享自己的經驗、提出見解就是一種精神,值得尊重。BS暴粗口的。

    # re: SpringSide 3 的進步  回復  更多評論   

    2011-12-04 13:06 by jamcson
    一直關注ss的成長
    主站蜘蛛池模板: a在线观看免费网址大全| 最新国产乱人伦偷精品免费网站| 人妻在线日韩免费视频| 亚洲国产人成中文幕一级二级| 中文字幕日韩亚洲| 亚洲av成人一区二区三区| 日韩成人毛片高清视频免费看| 中文字幕免费在线观看| 亚洲国产精品成人网址天堂| 亚洲免费在线视频| 国产免费AV片在线观看播放| 无码一区二区三区免费视频| 亚洲国产a∨无码中文777| 国产91成人精品亚洲精品| 国产成人精品久久免费动漫| 国产成人精品日本亚洲专区61| 亚洲色中文字幕在线播放| 无码日韩精品一区二区免费暖暖| 伊人久久亚洲综合影院| 久久精品国产亚洲av麻豆图片| 日韩一区二区a片免费观看 | 亚洲av最新在线网址| 黄色三级三级免费看| 国产美女精品久久久久久久免费| 亚洲欧洲国产视频| 免费A级毛片无码A∨中文字幕下载 | 亚洲人成在线精品| 99久久综合精品免费| 亚洲一区免费视频| 免费一级毛片在播放视频| 亚洲AV无码一区二区三区久久精品| 国产成人精品免费视| 亚洲熟妇自偷自拍另欧美| 免费久久精品国产片香蕉| 在线观看免费视频一区| 亚洲人成伊人成综合网久久久 | 特级毛片在线大全免费播放| 国产18禁黄网站免费观看| 国内成人精品亚洲日本语音 | 两个人看的www免费| 亚洲H在线播放在线观看H|