Spring的源头基于构件的软件开发(CBD-Component-Based Development)
程序员文章站
2022-03-09 18:41:20
...
最近有时间看看书补补理论。
看了一些软件体系结构(software architecture)的资料。终于理解了Spring的基本思想。
Spring是在CBD思想指导下开发的轻量级构件模型。
为什么会把spring和ejb进行比较呢?原因很简单,因为spring和ejb都是java的构件标准。都适用于CBD开发方法。
还有一些其他的构件标准:COM/DCOM/COM+、CORBA
我们平常采用的web程序结构:action->service->dao 其实背后的原理是CBD。
在实际的开发中CBD只是提供了开发思想,落地时会有很多的具体问题。比如,CBD并不会规定,web软件要分为action service dao。
我以前对spring的理解,见
http://www.iteye.com/topic/1141770#2422312,是纯实践角度的。这里写的是理论根源。
理解了这个,就可以明白:
1.spring 不是为了java web开发设计的。只是spring支持java web开发。
2.spring其实不会硬性规定软件构件的结构。
软件构件的组织是开发者自己的事,spring的存在,是为了提供构件拼装的容器,及辅助功能。
因此,用spring开发java web 有许多问题是需要开发者自己解决的。 简单的照搬别人的spring的应用框架,是开发不出良好的程序的。比如,有如下的常见问题:
1.所有的逻辑都写到dao里。
2.url、action包路径、ftl/jsp等组织混乱。
3.action、service、dao 调用关系混乱。
看了一些软件体系结构(software architecture)的资料。终于理解了Spring的基本思想。
Spring是在CBD思想指导下开发的轻量级构件模型。
为什么会把spring和ejb进行比较呢?原因很简单,因为spring和ejb都是java的构件标准。都适用于CBD开发方法。
还有一些其他的构件标准:COM/DCOM/COM+、CORBA
我们平常采用的web程序结构:action->service->dao 其实背后的原理是CBD。
在实际的开发中CBD只是提供了开发思想,落地时会有很多的具体问题。比如,CBD并不会规定,web软件要分为action service dao。
我以前对spring的理解,见
http://www.iteye.com/topic/1141770#2422312,是纯实践角度的。这里写的是理论根源。
理解了这个,就可以明白:
1.spring 不是为了java web开发设计的。只是spring支持java web开发。
2.spring其实不会硬性规定软件构件的结构。
软件构件的组织是开发者自己的事,spring的存在,是为了提供构件拼装的容器,及辅助功能。
因此,用spring开发java web 有许多问题是需要开发者自己解决的。 简单的照搬别人的spring的应用框架,是开发不出良好的程序的。比如,有如下的常见问题:
1.所有的逻辑都写到dao里。
2.url、action包路径、ftl/jsp等组织混乱。
3.action、service、dao 调用关系混乱。