论坛首页 入门技术论坛

spring的价值的质疑

浏览 7693 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-01-11  

我一直对spring的做法不十分理解,最近这个讨论证实了我的疑问《依赖注入是否值得?》。

 

spring的主要价值似乎是支持单元测试,而这个工作可以由mock框架完成。

 

我现在做的项目是asp.net, 主要用到NHibernate, 确实没感觉到用spring的必要。

 

我学习过spring当然了解有限,不过感觉中小型项目都不必要采用,徒然增加复杂性和开发人员的学习负担,没有必要别扭地采用IOC。

 

   发表时间:2008-01-11  
学会了就会很爽,没有spring会很难受。
学会了你才知道它的价值是什么。
0 请登录后投票
   发表时间:2008-01-11  
spring最基本,最直接的价值,也是最常用最简单的功能,应该是ioc容器。

积极引导,甚至半强迫性的要求开发人员按照面对接口编程,使用依赖注入,这些设计风格是非常好的。

其他的比如事务,aop等等更高级的用法就看你是否需要了。
0 请登录后投票
   发表时间:2008-01-11  
诺铁 写道
学会了就会很爽,没有spring会很难受。
学会了你才知道它的价值是什么。

同意楼上所说的,用习惯了spring,没有spring真的感觉太难受了
0 请登录后投票
   发表时间:2008-01-11  
chenge 写道

我一直对spring的做法不十分理解,最近这个讨论证实了我的疑问《依赖注入是否值得?》。

 

spring的主要价值似乎是支持单元测试,而这个工作可以由mock框架完成

 

我现在做的项目是asp.net, 主要用到NHibernate, 确实没感觉到用spring的必要。

 

我学习过spring当然了解有限,不过感觉中小型项目都不必要采用,徒然增加复杂性和开发人员的学习负担,没有必要别扭地采用IOC。

 

spring的主要价值之一是让单元测试更容易,否则组件之间都硬链接,你会发现无从mock

0 请登录后投票
   发表时间:2008-01-11  
依赖注入啊,一定要尽量坚持这个原则,否则junit测试简直无法进行。

即使不用spring,也要尽量使用依赖注入,这样写出来的代码才是测试友好的。

mock再方便,也不如一个setter方法调用简单。
0 请登录后投票
   发表时间:2008-01-11  
用接口也就是更灵活的插件式结构,但是这个是有代价的。应该是只在需要的地方用。

楼上朋友能给出一个无法mock的例子吗?

感觉这个问题的讨论还是有价值的,hibernate的价值是明显的,界面层是必需的,而spring觉得不是必需的,至少是中小型项目不需要。
0 请登录后投票
   发表时间:2008-01-11  
lz 不知道用的什么 mock 方法?可否贴一个上来?
Spring 就是一个 ioc 容器,所以你的问题实际上是 ioc 模式的作用,简而言之,就是真正地分割各对象,将对象的实例化放到对象外面去。
Google guice 的网站上的使用说明上给了很强很和谐的例子,去看看好了。
0 请登录后投票
   发表时间:2008-01-11  
你用了SPRING,维护的人会感谢你的
0 请登录后投票
   发表时间:2008-01-11  

我看了Guice的说明。

我感觉当时的背景是j2ee难以测试,而mock也是新出来的技术。spring出来后能解决这个测试难的问题(有比较大的代价),于是受到欢迎,似乎遮蔽了mock框架。

我接触过NMock, TypeMock. java有JMock.这些都是动态mock框架,根本不需要写如下的mock class:                 public class MockService implements Service

所以只是因为测试问题是应该采用mock框架。

 

这里是Jmock的例子

 

0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics