锁定老帖子 主题:Spring--也许正成为一个EJB
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-14
ricoyu 写道 引用 但是我看到的情况都是在滥用。为一个功能写一个接口和一个实现类,然后就认为是面向接口编程。这种思路怎么来的,真正用的好吗?我是比较怀疑的。
LZ这段话我超级赞同的, 很多项目都是为了面向接口编程而面向接口编程, 庸人自扰之. 比如很多项目喜欢弄一个service接口, 然后对应一个serviceImpl实现类, 在action里持有这个service接口, 然后通过spring注入唯一的一个实现类serviceImpl, 这就是他们所谓的面向接口编程了. 在这种场景下完全不需要抽象出一个接口, 直接一个service具体类就ok了 学校是这么教的,书上是这么写的,那么照着做吧,为什么这样做?先把功能实现吧。。。 spring,我觉得好用,用到的事务啊,quartz啊什么的,我觉得很简单,很省事,让我自己实现事务,写jdbc,太累,至于任务调度,那我根本写不出来。。。 至于配置文件,我是从springside学的0配置,用到注入,就@autowrite了,事务就@Transactional,bean就@Component,虽然,可能后期维护,修改会痛苦,但是包都分清楚了,架构层次在哪里,应该还好啦。 至于接口,不说了,只觉得,写接口在写实现类,除了增加调试难度以外,没什么用处,或许是我的应用级别太低,还没有达到那种需要面向抽象的档次。 但是我觉得spring太大了,大到想把所有javaEE的东西都包进来,越来越复杂了。想用好,太难了。。。 |
|
返回顶楼 | |
发表时间:2011-04-14
Nutz 用户飘过
|
|
返回顶楼 | |
发表时间:2011-04-14
truekbcl 写道 没有IOC你的代码改动会叫你改一处动全身
++++++++++++++++++++++++++++++++++++ 呵呵,这个真神奇。 跟你说下 为什么会没有IOC会叫你的代码改一处动全身。这个也是亲身经历,当年中兴的IPTV的项目就是弄得我们人仰马翻,由于历史原因,框架设计的问题导致的。比如说当你的代码越来越多而其中的一款业务没有涉及好,要重新设计,同时这块业务的代码又涉及了别处,以此往返,最后只好所涉及到的地方都要改。而IOC是控制反转,也就是说你涉及到的业务指是简单的插入到别的业务里的,但你的业务改动的时候只需要改动配置就可以了。明白了吗 这就是IOC的作用。你好好理解去吧 |
|
返回顶楼 | |
发表时间:2011-04-14
看完这个帖,然后我就结合之前做的一个小项目来思考一下
我尽量不去想spring的好处、坏处 而是去想,如果没有spring,我会怎样编代码 结果,我想,如果重新设计,我依然会用spring |
|
返回顶楼 | |
发表时间:2011-04-14
pengpeng99bill 写道 gougou851129 写道 08年的时候做过jsf+spring+hibernate
那时候只是觉得jsf的事件驱动不错,其他到没觉得有什么。 如果要是为了事件驱动而来还不如转去做dotnet呢 JSF 2.0现在应该很好用了 试想下项目为什么要用.NET 操作系统要花钱,一个小小的IIS破服务器要花钱,有什么好的呢。其实真正用.NET大部分是两个原因,1)是原来的项目是.NET的要扩展。2)是.NET开发数度快周期短。 那么JAVA如果能够比.NET开发快 试想谁还会用.NET。那么.NET的优势是什么呢,其实就是ASP的快速开发。这正式因为ASP的事件驱动和组件的拖动开发,但年的SUN由于在美工方面真的是那个烂啊,就不说了,一个SWTING,一个AWT大家都知道的。而JSF我估计正式为了快速开发而做的,其实大家考虑真正的BS项目大部分时间不都是在开发VIEW吗 如果省去了这个时间.NET还什么优势呢。相信Oracle也明白这一点,所以才说JSF肯定要真正的出现了,JSF2.0的设计也正证实了这方面。 |
|
返回顶楼 | |
发表时间:2011-04-14
咖啡豆子 写道 pengpeng99bill 写道 axeon 写道 楼主的观点是正确的,但是你注定要被投新手和隐藏。
为spring叫好的,才真的是新手,不单单对java的历史没有比较,很多在开发语言层面上也没有比较。刚入行就做java,直接就做spring。 你若真的让他用别的语言写个东西,立刻六神无主,如若让他不用spring写java的东西,他也同样六神无主。 这姑且也算是斯德哥尔摩综合征之一吧! 楼主被投新手和隐藏的原因是新手的基数还真的很大,而且很爱发言。 ejb我算是国内第一批用的,做了几个大项目,平心而论,不是那么好用,也不是那么难用。 spring也是国内第一批用的,其实本质上和ejb差不多,一个解决了A问题,带来了B问题,一个解决了B问题,带来了C问题。 但是,我就弄不明白了,spring难道是你亲爹,那么维护着? 你说你用spring做过大项目,我怎么看不出来啊,JAVA里面吹牛逼的真多,如果你真的用过spring做过大项目,我相信你就不会说了,没有spring的IOC你的维护会叫你死掉,没有IOC你的代码改动会叫你改一处动全身。而且spring已经不仅仅是IOC他集成了所有框架和技术优势,把他们又简单话,所以业务上的扩展非常容易。这就是spring本身的目标80%的代码。JAVA里面向你这样滥竽充数的太多了,没办法因为JAVA的Hellworld太简单了而且JAVA本身代码有不复杂,不像C会涉及到指针涉及到硬件,所以今天的所谓的JAVA人太多了。我带的Team里面就有很多,从他们的逻辑思想上就能看出来。嗨不想骂你算了,年轻人别太浮躁,要真想学好JAVA多研究研究JAVA的各种框架吧,只有你真正的会使用各种框架了,你才能到架构师的方向。算了不说太多了 这......... 对于pengpeng99bill同学,姑且叫你小朋友吧。 从你的言论来看,可以想到哥入行的时候,小朋友可能还在玩和稀泥吧? 我还真没用spring做过大项目,倒是给用spring的大项目做过咨询。 你说的“没有spring的IOC你的维护会叫你死掉,没有IOC你的代码改动会叫你改一处动全身”,这个还真不敢苟同。 倒是见到N多向您一样言谈架构装X同学,为了个人所谓的澎湃梦想把项目做得一团糟,把团队折磨的痛苦不堪。 如果方便,请您详细介绍一下您的架构梦想。 |
|
返回顶楼 | |
发表时间:2011-04-14
pengpeng99bill 写道 truekbcl 写道 没有IOC你的代码改动会叫你改一处动全身
++++++++++++++++++++++++++++++++++++ 呵呵,这个真神奇。 跟你说下 为什么会没有IOC会叫你的代码改一处动全身。这个也是亲身经历,当年中兴的IPTV的项目就是弄得我们人仰马翻,由于历史原因,框架设计的问题导致的。比如说当你的代码越来越多而其中的一款业务没有涉及好,要重新设计,同时这块业务的代码又涉及了别处,以此往返,最后只好所涉及到的地方都要改。而IOC是控制反转,也就是说你涉及到的业务指是简单的插入到别的业务里的,但你的业务改动的时候只需要改动配置就可以了。明白了吗 这就是IOC的作用。你好好理解去吧 用ioc,要改配置文件,不用ioc,改个工厂,或许真的有点优越,但不觉得非常优越 |
|
返回顶楼 | |
发表时间:2011-04-14
说IOC没用的人基本都没做过复杂业务逻辑系统,简单的数据库系统当啊没必要用spring,可是复杂业务经过合理抽象化后就非常合适用Spring,特别是客户对业务有各种不同的要求。
说白了,还是不懂抽象的人在为了IOC而Spring了。确定不变化东西没必要接口,自然没必要IOC。但是你能保证所有的业务逻辑在明确不变后,就一定不变吗!合同签了都能改,更何况有的根本都没签。 Service和Dao分层基本上是为了事物方便,Spring的事物的确好用啊。把所有的业务抽象成一个接口后,需要事物的控制,Service也能用,没什么大不了的。纯粹的CRUD的Service和Dao都不涉及事物的,想用就用,不想用直接jdbc或者Hibernate就行。 实在没觉得Spring有什么问题,说到底还是人的问题吧! |
|
返回顶楼 | |
发表时间:2011-04-14
哎,争什么争,scala一旦成熟,spring在架构层面上的价值基本可以无视了。人家在语言级别上就解决了很多模式和架构的问题,IoC变成一个很自然的编程行为,真要有相应成熟的框架出来,那还不把java world 杀个人仰马翻……
|
|
返回顶楼 | |
发表时间:2011-04-14
axeon 写道 咖啡豆子 写道 pengpeng99bill 写道 axeon 写道 楼主的观点是正确的,但是你注定要被投新手和隐藏。
为spring叫好的,才真的是新手,不单单对java的历史没有比较,很多在开发语言层面上也没有比较。刚入行就做java,直接就做spring。 你若真的让他用别的语言写个东西,立刻六神无主,如若让他不用spring写java的东西,他也同样六神无主。 这姑且也算是斯德哥尔摩综合征之一吧! 楼主被投新手和隐藏的原因是新手的基数还真的很大,而且很爱发言。 ejb我算是国内第一批用的,做了几个大项目,平心而论,不是那么好用,也不是那么难用。 spring也是国内第一批用的,其实本质上和ejb差不多,一个解决了A问题,带来了B问题,一个解决了B问题,带来了C问题。 但是,我就弄不明白了,spring难道是你亲爹,那么维护着? 你说你用spring做过大项目,我怎么看不出来啊,JAVA里面吹牛逼的真多,如果你真的用过spring做过大项目,我相信你就不会说了,没有spring的IOC你的维护会叫你死掉,没有IOC你的代码改动会叫你改一处动全身。而且spring已经不仅仅是IOC他集成了所有框架和技术优势,把他们又简单话,所以业务上的扩展非常容易。这就是spring本身的目标80%的代码。JAVA里面向你这样滥竽充数的太多了,没办法因为JAVA的Hellworld太简单了而且JAVA本身代码有不复杂,不像C会涉及到指针涉及到硬件,所以今天的所谓的JAVA人太多了。我带的Team里面就有很多,从他们的逻辑思想上就能看出来。嗨不想骂你算了,年轻人别太浮躁,要真想学好JAVA多研究研究JAVA的各种框架吧,只有你真正的会使用各种框架了,你才能到架构师的方向。算了不说太多了 这......... 对于pengpeng99bill同学,姑且叫你小朋友吧。 从你的言论来看,可以想到哥入行的时候,小朋友可能还在玩和稀泥吧? 我还真没用spring做过大项目,倒是给用spring的大项目做过咨询。 你说的“没有spring的IOC你的维护会叫你死掉,没有IOC你的代码改动会叫你改一处动全身”,这个还真不敢苟同。 倒是见到N多向您一样言谈架构装X同学,为了个人所谓的澎湃梦想把项目做得一团糟,把团队折磨的痛苦不堪。 如果方便,请您详细介绍一下您的架构梦想。 你就是一傻逼 我不说什么了 |
|
返回顶楼 | |