论坛首页 Java企业应用论坛

Spring--也许正成为一个EJB

浏览 73065 次
该帖已经被评为良好帖
作者 正文
   发表时间:2011-04-15  
不太理解这帖子也只能被评为良好帖子!
如所言:“如果你设计了一个API,却很容易让人误用(或者是进行了错误的宣传),那么责任是使用者还是开发者呢?”,楼主自己误用了(当然也还有相当一部分人误用了),把原因全部推倒Spring上面,然后就认为Spring不好。
其他为了接口而接口、配置文件的问题,希望楼主好好研究一下Spring再来评论,Spring是不存在这些问题的。
0 请登录后投票
   发表时间:2011-04-15  
spring能在一定的范围内解决一定的问题,使用起来优点多于缺点
0 请登录后投票
   发表时间:2011-04-15   最后修改:2011-04-15
引用
楼主能评价出来spirng的一些误用.滥用.说明你用过,但是你评价出来的这几点.也正好说明你也只是用到了spirng的皮毛.
也就是说.你用的这些个皮毛.其实完全没必要使用spirng都可以实现,或者有更好的办法实现.说以楼主才发了这个帖子.

大家没必要跟帖了.万事万物,一物克一物,天生我才必有用.spring的精华不是楼主你这么两三句就给其否定了.


不知道是我表达有问题,还是别的原因。
我一直在说,如果用Template,Transaction这些东西,我觉得很OK了,简化了开发,没有任何问题。
但现在就是你说的那些皮毛的内容,却大量被使用,而且不管场合地使用。
就象你说的,现在有多少没有必要用Spring实现的东西,都被硬套上了Spring。
现在大家回头看一下团队的代码,哪些内容是用了精华的东西,哪些内容是为了接口而接口,我不好臆断到底有多少,但绝对不少。
Spring也有精华所在,我也没有去否认这些东西。
我只是想提醒大家,Spring现在被滥用的很严重,而且很多地方有误导的情况,希望大家使用的时候,多想一下。
0 请登录后投票
   发表时间:2011-04-15  
楼主的见解很深刻,就我个人认为,spring在做中小型项目里,其开发时间及学习成本太高。
我一直在寻求一种更快捷但不失灵活的J2EE开发方法,Spring内部提供的功能还是很好的,但使用来做开发难免复杂。
也正如楼主所说,现在用Spring的人基本都是知道大家用而自己用,没有深入理解Spring的思想(当然,要理解不是一件很容易的事情),也谈不上能把这工具用好啦

当然,我一直没有在工作中使用过Spring,也没有深刻认识到非得要用这东西!
0 请登录后投票
   发表时间:2011-04-15  
非常赞同“面向接口编程”应该改为“面向抽象编程”
0 请登录后投票
   发表时间:2011-04-15  
Spring使用元注解也可以避免复杂的XML方式的配置,Spring就是一个工具提供了很多功能,如何使用就完全看使用者对工具掌握的熟练程度了
0 请登录后投票
   发表时间:2011-04-15  
fhjxp 写道
不太理解这帖子也只能被评为良好帖子!
如所言:“如果你设计了一个API,却很容易让人误用(或者是进行了错误的宣传),那么责任是使用者还是开发者呢?”,楼主自己误用了(当然也还有相当一部分人误用了),把原因全部推倒Spring上面,然后就认为Spring不好。
其他为了接口而接口、配置文件的问题,希望楼主好好研究一下Spring再来评论,Spring是不存在这些问题的。


我说过Spring存在这些问题吗?我把问题推到Spring上了吗?
我一直在说,大家误用了Spring,而且很严重。
Spring有很多地方,设计的不错。但同样,有些设计也是比较容易误用的,当然这是一个选择问题,我不赞同,并不代表它有问题,毕竟要面对的场景不同,只是个人观点而已。
我更喜欢ServiceLocator,Lookup,Extension Point这些设计。
每种设计都不完美,但如果把一个东西不管场合去用,那么怎么说呢?
0 请登录后投票
   发表时间:2011-04-15  
wl95421 写道
引用
本来想注册一个马甲来写这个帖子的,因为估计自己会被骂得很惨。

  • 依赖注入并不是不好,但Spring的依赖注入并不是很好,因为他要强迫很多人员了解别人的东西(你现在要用别人的一个接口,需要配置Spring,那么你必然要找到该接口的实现类,甚至是多个实现类,需要了解别人内部的东西,这叫解耦吗),特别是开发人员水平不高的情况下,基本上就是为了注入而注入,为了接口而接口。
  • Spring更合适在模块内部使用,但现在大部分开发人员都做不到模块化设计,而Spring大量的配置文件,将相关内容全局化了,进一步破坏了模块化设计的可能。
  • Spring的配置文件太多,而且基本上现在web开发中,都是全局化的,再加上autowire,维护难度远远大于代码。
  • 减少了静态编译的机制,增加了不必要的错误。
  • 占个位,慢慢补充。



引用
依赖注入并不是不好,但Spring的依赖注入并不是很好

虽然我没用过Ejb,但是Spring的DI目前来看应该是事实上的标准了吧?我没听过有其他的框架做的比Spring更好.

楼主也说Spring有大量的配置文件.
我专门数了下我用Spring3MVC做的项目中Spring配置文件.
不算dataSource相关的配置的话
Spring的配置只有5行.
SrpingSource出的STS甚至帮你把写这5行spring配置文件的步骤都省了...

楼主说的Spring大量配置文件也许指的是Spring2.0以前的Spring了
当时Spring的确需要大量的xml配置.
尤其恼火的是每个接口都要手动注入.
项目大了看着N个几百行的xml文件维护起来痛不欲生.

但是时代在进步,Spring也在进步.
现在再讲Spring配置文件过多就不合时宜了.

至于那些说接口编程模式没用的.楼主中间的一段话已经说的很明白了
引用
另外说一句,“面向接口编程”,这话里的接口不是java的interface,如果真正翻译一下,应该是“面向抽象编程”,也就是说,将功能抽象出来,然后通过对外的内容提供功能,至于对外的内容是interface,还是class,要看具体的情况。

请好好的理解这句话的意思
我举个例子,如果你需要处理一个业务逻辑.一个dao里是完成不了的

但我们可以在service上完成.在同一个类里调用多个dao再加上Transactional就可以了

然后在controller调用service接口.

当然你也可以说我直接用存储过程啊.所以service层根本就不需要.

我说一个很简单的东西专门写一个存储过程麻烦不麻烦啊.维护起来麻不麻烦啊.

总的来说Spring是个好东西.
骂他的人很多,喜欢他的人也多,但是都在用他.



0 请登录后投票
   发表时间:2011-04-15  
spring其实就是一个在特定时间,特定场景解决问题的东西,只是现在被滥用的情况确实非常的多,好多项目就是为了spring而spring。
0 请登录后投票
   发表时间:2011-04-15  
引用
但是时代在进步,Spring也在进步.
现在再讲Spring配置文件过多就不合时宜了.


这个涉及到大家使用Spring的习惯。
至于AutoWire和Annotation,我个人也不是很支持。
如果真正要用,可能XML比Annotation更好一些。
当然这个问题比较扯了,不在这里讨论了。
也许你团队用Spring好一些,问题少一些,但是据我所知,情况未必乐观。
0 请登录后投票
论坛首页 Java企业应用版

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