作者:陳市明/Slipper Feng
摘自:http://www.tkk7.com/JPeanut
J2EE
是目前公認的比較慢的一種開發,相比
.net
,
php
,
asp
等而言。其實,
j2ee
的開發者都深有體會的,
java
代碼編寫的速度其實并不慢,在
eclipse
和
jbuilder
等可視化界面的幫助下,編寫代碼變的越來越簡單;但是在調試的時候,每改完一個
java
或者
xml
代碼要預覽改的效果的話,必須要重新構建,部署,重啟服務器
,
這些動作反反復復,消耗的時間不少。
近期為公司寫了個單元測試的框架,基本上解決了反反復復構建,部署,重啟服務器的問題。我們的項目的都是運用了類似
struts
-
spring
-
hibernate
的
MVC
架構(下面簡稱
ssh
),不同的就是中間的
aop
是自己開發實現的,而沒有運用
spring
的。不過,我們的單元測試框架對標準的
struts
-
spring
-
hibernate
支持也挺好。
上面的是在
ssh
的一次交互的原理圖,做過
struts
開發者都會很熟悉。首先,是
jsp
通過
submit
的
url
將表單數據提交給后臺
action
的
servlet
,后臺通過在
struts-config.xml
中的配置找到相關的×××
Action
,然后通過×××
Service
,×××
Dao
操作數據庫,再將數據返回給另外一個
jsp
,讓他顯示結果。
上面的圖是我們單元測試框架實現構建,部署,重啟服務器的原理圖。我們很容易從圖上看的出來,我們寫了個
Test
×××
Action
來模擬
2
個
jsp
的動作,該類分成
2
部分上面一部分是模擬了
jsp
頁面
submit
的動作(包括模擬提交給
url
,模擬提交數據),下面一部分是接收×××
Action
返回的數據,然后,進行校驗(此處的校驗,我們用了
junit
的斷言功能)。通過用
java
類來模擬
jsp
的好處在于,我們可以完全把這個一個交互作為一個
application
來運行起來,非常容易的做到單步調試,而不用到真實的平臺上,啟動服務器上運行。(注:此處有
2
個
db
:開發
db
和測試
db
,這個再以后的介紹中會講到)
我們還為在這個架構上開發制定了流程:
1
把當天需要開發的模塊的
java
代碼全部些好
2
通過這種模式調試
java
代碼
3
在確保這些
java
代碼無誤后,構建,部署,啟動服務器
4
然后編寫所有的
jsp
(因為修改
jsp
無需啟動服務器)
這樣,在開發一天的所有代碼,幾乎都不用怎么重啟服務器,可以為開發人員省下很多時間,也使得開發人員喜歡的單步調試變的異常簡單,提高代碼的質量。
我們已經在真實的項目中實施了該流程的開發,得到的效果和預期的一樣。當然還是比不過其他語言的開發,不過我們的架構還在不斷改進(通過改進流程、編寫
eclipse
等開發工具的插件等方法),使我們的開發人員可以更加快的進行
j2ee
的開發。