程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> SpringSide 3的進步

SpringSide 3的進步

編輯:關於JAVA

在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文件,相當的不 方便,其目錄結構如下圖:

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved