Spring的源头基于构件的软件开发(CBD-Component-Based Development)

最近有时间看看书补补理论。

看了一些软件体系结构(softwarearchitecture)的资料。终于理解了Spring的基本思想。

Spring是在CBD思想指导下开发的轻量级构件模型。

为什么会把spring和ejb进行比较呢?原因很简单,因为spring和ejb都是java的构件标准。都适用于CBD开发方法。

还有一些其他的构件标准:COM/DCOM/COM+、CORBA

我们平常采用的web程序结构:action->service->dao其实背后的原理是CBD。

在实际的开发中CBD只是提供了开发思想,落地时会有很多的具体问题。比如,CBD并不会规定,web软件要分为actionservicedao。

我以前对spring的理解,见

http://www.iteye.com/topic/1141770#2422312,是纯实践角度的。这里写的是理论根源。

理解了这个,就可以明白:

1.spring不是为了javaweb开发设计的。只是spring支持javaweb开发。

2.spring其实不会硬性规定软件构件的结构。

软件构件的组织是开发者自己的事,spring的存在,是为了提供构件拼装的容器,及辅助功能。

因此,用spring开发javaweb有许多问题是需要开发者自己解决的。简单的照搬别人的spring的应用框架,是开发不出良好的程序的。比如,有如下的常见问题:

1.所有的逻辑都写到dao里。

2.url、action包路径、ftl/jsp等组织混乱。

3.action、service、dao调用关系混乱。

相关推荐