过去写了篇日志
旧系统集成spring
[url]http://japi.iteye.com/blog/257215[/url]
想了,spring的非侵入性。
现在系统已经是SSH的了,从SH到SSH就是一个新的开发。
那么什么才是真正的非侵入性呢?
原来的想法就是在加入spring的时候,原系统不需要任何的改变。
但经过系统的改造,发现与心中的想法,差距不是一点点。
到底什么是非侵入性??
看到以前的一个帖子
http://www.iteye.com/topic/38779?page=1
[quote]主要是看能不能方便的进行单元测试,高侵入性的框架下面写的代码单元测试起来很困难。例如对比Struts和Webwork就可以知道[/quote]
[quote] 我的理解是所谓的‘非侵入’性应该是指代码中对框架的代码的调用多少和依赖程度,像struts和hibernate这样的框架是肯定需要你依赖于它的。因为你的action不得不继承基类action,你不得不调用hibernate的session对象。而像spring这样的框架本身就是为了减少这样的依赖性而实现的‘框架’,它达到这个目的采用的方式正好就是ioc。这也正是spring这个框架区别于其他框架的地方。
要想做到绝对不依赖于任何的框架是不可能的,除非你什么都去自己’制造‘。而spring框架集成了其他很多的框架,比如hibenrate,struts什么的。它这样做的目的也无非是:要么你不依赖于他们,如果你实在要依赖于他们的话,就让我来依赖他们吧,而你们只需要依赖于我。正所谓’我不入地狱,谁入地狱‘,对于其他框架的繁琐的操作接口和一些版本的冲突spring都试着自己来解决或作出一些‘封装’,来简化我们对其操作的复杂性。
个人觉得spring的这种设计方式还是非常先进的,只是其自身正在因为这种方式而变得越来越臃肿和庞大。变得不堪重负,因为我们在开发中经常因为不了解其对于其他的框架的集成方式而不知如何解决一些具体的问题。虽然我不依赖于他们了,但是因为中间多了一个你(spring)而让本来简单的事情变得更加的扑朔迷离!!
个人认为这正是spring在发展过程中需要注意平衡’强大性‘和’简单性‘这二者的挑战极大的地方。因为一不小心它可能就发展成为了一个新的’开发平台‘,而所谓的’非侵入行‘和’简单性‘就又变成了一句空话!!!
[/quote]
看来
非侵入性只是一个去追求的目标,尽量减少代码对框架代码的依赖。
旧系统集成spring
[url]http://japi.iteye.com/blog/257215[/url]
想了,spring的非侵入性。
现在系统已经是SSH的了,从SH到SSH就是一个新的开发。
那么什么才是真正的非侵入性呢?
原来的想法就是在加入spring的时候,原系统不需要任何的改变。
但经过系统的改造,发现与心中的想法,差距不是一点点。
到底什么是非侵入性??
看到以前的一个帖子
http://www.iteye.com/topic/38779?page=1
[quote]主要是看能不能方便的进行单元测试,高侵入性的框架下面写的代码单元测试起来很困难。例如对比Struts和Webwork就可以知道[/quote]
[quote] 我的理解是所谓的‘非侵入’性应该是指代码中对框架的代码的调用多少和依赖程度,像struts和hibernate这样的框架是肯定需要你依赖于它的。因为你的action不得不继承基类action,你不得不调用hibernate的session对象。而像spring这样的框架本身就是为了减少这样的依赖性而实现的‘框架’,它达到这个目的采用的方式正好就是ioc。这也正是spring这个框架区别于其他框架的地方。
要想做到绝对不依赖于任何的框架是不可能的,除非你什么都去自己’制造‘。而spring框架集成了其他很多的框架,比如hibenrate,struts什么的。它这样做的目的也无非是:要么你不依赖于他们,如果你实在要依赖于他们的话,就让我来依赖他们吧,而你们只需要依赖于我。正所谓’我不入地狱,谁入地狱‘,对于其他框架的繁琐的操作接口和一些版本的冲突spring都试着自己来解决或作出一些‘封装’,来简化我们对其操作的复杂性。
个人觉得spring的这种设计方式还是非常先进的,只是其自身正在因为这种方式而变得越来越臃肿和庞大。变得不堪重负,因为我们在开发中经常因为不了解其对于其他的框架的集成方式而不知如何解决一些具体的问题。虽然我不依赖于他们了,但是因为中间多了一个你(spring)而让本来简单的事情变得更加的扑朔迷离!!
个人认为这正是spring在发展过程中需要注意平衡’强大性‘和’简单性‘这二者的挑战极大的地方。因为一不小心它可能就发展成为了一个新的’开发平台‘,而所谓的’非侵入行‘和’简单性‘就又变成了一句空话!!!
[/quote]
看来
非侵入性只是一个去追求的目标,尽量减少代码对框架代码的依赖。