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

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

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

    京山游俠

    專注技術(shù),拒絕扯淡
    posts - 50, comments - 868, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    在SpringSide的官方主頁上,寫著SpringSide 3 中包含的主流組件:Spring 2.5 + Hibernate 3 + Struts 2 + JSP 2.0 + JQuery + JAX-WS 2 (by Apache CXF 2) +SpringSecurity 2.0。不過,如果你認(rèn)為和SpringSide 2 相比,升級(jí)的只是版本號(hào),那么你就大錯(cuò)特錯(cuò)了。

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

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

    我認(rèn)為,我們的開發(fā)模式,主要經(jīng)歷了這樣的簡(jiǎn)化過程:
    第一階段,代碼加一大堆的配置文件
    第二階段,代碼加少量的配置文件
    第三階段,代碼加基本上等于零的配置文件

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

    下面使用實(shí)際的例子進(jìn)行說明。作為示例,Hibernate是個(gè)不錯(cuò)的選擇。

    第一階段,如果單獨(dú)使用Hibernate,我們每寫一個(gè)Entity類,就得同時(shí)寫一個(gè).hbm.xml文件,如果有很多Entity,就得寫很多.hbm.xml文件,每修改一次Entity,也要同時(shí)記得修改.hbm.xml文件,相當(dāng)?shù)牟环奖悖淠夸浗Y(jié)構(gòu)如下圖:
    002.PNG

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

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

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

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

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

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

    SpringSide 3 中使用自動(dòng)掃描了,如下圖:
    007.PNG

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

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

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

    011.PNG

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

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

    014.PNG

    所以說,SpringSide 3 的一個(gè)優(yōu)點(diǎn)就是讓生活變得更加簡(jiǎn)單了。在以上的截圖中,SpringSide 2 項(xiàng)目用的是Eclipse 3.2,而SpringSide 3項(xiàng)目用的是Eclipse 3.4 For JavaEE Developers。哪一個(gè)IDE更爽,那也是一目了然。

    評(píng)論

    # re: SpringSide 3 中的新特性  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步[未登錄]  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

    2008-12-18 09:21 by Conan Lee
    在SS2的時(shí)候,hbm.xml其實(shí)也可以這樣配置。
    <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 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

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

    不過這個(gè)開源項(xiàng)目經(jīng)常太監(jiān)的年代,升級(jí)演示也算升級(jí)吧,大家不用這么在乎字眼吧:)

    # re: SpringSide 3 的進(jìn)步[未登錄]  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

    2009-06-30 20:37 by 學(xué)習(xí)
    暈,罵人的人真不好。
    提供這么個(gè)項(xiàng)目骨架,你們也說三道四的。

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步[未登錄]  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

    2010-03-04 21:48 by 匿名
    很不錯(cuò)的資源~~
    學(xué)習(xí)了··

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步[未登錄]  回復(fù)  更多評(píng)論   

    2010-04-09 13:26 by Mark
    強(qiáng)烈支持博主!

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步[未登錄]  回復(fù)  更多評(píng)論   

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

    支持所有別人在休息玩耍他們默默在做奉獻(xiàn)的人們。

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步[未登錄]  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

    2010-08-04 15:42 by cafe
    對(duì)比講解,清晰明了。
    支持分享自己的經(jīng)驗(yàn),謝謝分享。

    # re: SpringSide 3 的進(jìn)步[未登錄]  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步[未登錄]  回復(fù)  更多評(píng)論   

    2010-11-04 17:35 by 劉強(qiáng)
    支持樓主,寫很好。 希望樓主多出點(diǎn)關(guān)于這方的資料。
    謝謝樓主。

    # re: SpringSide 3 的進(jìn)步[未登錄]  回復(fù)  更多評(píng)論   

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

    # re: SpringSide 3 的進(jìn)步  回復(fù)  更多評(píng)論   

    2011-12-04 13:06 by jamcson
    一直關(guān)注ss的成長(zhǎng)
    主站蜘蛛池模板: 亚洲欧洲日产专区| 91福利免费视频| 97se亚洲国产综合自在线| 久久精品亚洲乱码伦伦中文| 色窝窝免费一区二区三区| 久热免费在线视频| 精品久久久久久国产免费了| 亚洲av无码无线在线观看| 亚洲最大在线视频| 亚洲av无码不卡一区二区三区| 亚洲国产精品自产在线播放| 成全影视免费观看大全二| 精品福利一区二区三区免费视频| 免费看成人AA片无码视频吃奶| 老妇激情毛片免费| 亚洲Av永久无码精品黑人| 亚洲一区二区三区久久| 亚洲综合一区二区| 亚洲精品在线观看视频| 亚洲精品蜜桃久久久久久| 三上悠亚亚洲一区高清| 亚洲国产成人久久综合一区77| 国产精品免费看久久久无码| 成人免费男女视频网站慢动作| 国产桃色在线成免费视频| 中文字幕免费视频| 13一14周岁毛片免费| 18禁美女黄网站色大片免费观看| 无码人妻久久一区二区三区免费| 黄色网址在线免费| 无码国产精品一区二区免费模式 | 国产精品免费一区二区三区| 国产精品久久久久久亚洲小说| 亚洲高清视频在线| 亚洲日韩AV一区二区三区中文| 亚洲а∨天堂久久精品9966| 国产亚洲sss在线播放| 亚洲欧美日韩一区二区三区在线| 亚洲国产AV无码一区二区三区| 国产成人亚洲精品91专区高清| 看免费毛片天天看|