作者:陈市明/Slipper Feng
摘自:http://www.blogjava.net/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
的开发。