该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-01-08
gdpglc 写道 我看Spring提供了两样东西:
1. IOC 2. AOP及Spring提供的一些辅助功能 这两样东西,有没有用我想做一下这样的对比应该能看出来: 不用Spring时,你强烈的感到需要IOC和AOP了吗? 打个比方:jdk如果没有文件的I/O库,这个影响是明显的。 可是程序不用Spring的影响是什么呢? IOC使程序达到了彻底解藕,我的意思是调用者完全不知道调用的是谁。我想的确能带来解藕的效果,但是代价是产生很多接口和对应的配置。我看Spring代码,很不爽的是:想看一个被调方法的代码,用ctr+鼠标左键,找到的却是接口。 第一、 软件解藕,是软件设计的根本原则,在没有Spring的情况下,做好解藕靠的是设计人员的水平。有了Spring带了一个好处:即不用但心软件设计出现糟糕的情况,因为对于设计人员本身,在软件结构上,没什么好再设计的,什么都被Spring的规则决定好了。 因此,我感觉 因为Spring把软件的结构形式化了,从而约束了开发团队中的相关人员,因此软件的整体质量得到了提高。 这就象小时候的田字格本,在哪写字先规定好,然后再写。 第二、做到了IOC似乎,对做单元测试有很大好处,因为可以使用Mock的方式进行测试,但是真有哪个团队会写大量的Mock对象进行测试吗? 第三、想通过IOC来装配组件,形成有用的功能。应该是个理想化的想法。 AOP及Spring提供的一些辅助功能 就我知道的: 第一、声名式事务 第二、异常体系 都能起到降低程序员劳动强度的作用。需要一些配置。 这个好处恰好和Spring整体上带来的烦锁的接口定义和配置相抵了。 结论: Spring会给软件带来好处,也带来坏处。总体上,好处>坏处。团队新手越多的话,好处越明显。 不用Spring一样可以写出优秀的软件。 但是,如果软件本身的结构,需要很大的灵活性,比如,软件不能用简单的分层结构划分,比如 Tomcat 这样的软件,似乎就没有必要用Spring了!Spring并不能给软件带来精巧、灵活、创新的设计,而是给常规形式的软件提供了明确的模板。 Spring和其它的框架如:struts、hibernate的目的是有明显的区别的。 Spring的目的是,提高软件的质量和开发效率(当然Spring也延伸到具体的功能领域了。比如:它也有MVC) 而struts、hibernate则是具体的功能框架,专注于特定的软件功能。 这上的实践不多,还望指正! 经过两天的讨论逐渐清楚了Spring的总体思想和技术的相关关系如下: 组件编程思想 / \ ejb容器 Spring容器 / \ 提供辅助性功能 以IOC技术实现组件装配 \ 基于IOC的AOP技术 \ 基于AOP的辅助性功能 最初我的关注点放在小处了,是有些肤浅。IOC应该是组件编程思想的具体技术形式,Spring的根本还是在组件编程思想上。 |
|
返回顶楼 | |
发表时间:2011-01-08
怎么回贴,只是引了一下我发的内容?
|
|
返回顶楼 | |
发表时间:2011-01-08
Tomcat 这样的软件,似乎就没有必要用Spring了?不解。那楼主认为什么中间件适宜使用spring?采不采用spring看项目和开发团队的选择,而不是中间件选择吧?。而且spring独立于中间件(不依赖中间件)。还有spring和ejb的应用环境不同的。spring虽然提供事务管理,但和ejb作比较这一想法还是不靠谱的。ejb应用在分布式应用环境中,依赖ejb容器,而且ejb支持分布式事务管理,如果按照java的三种事务管理jdbc,jta(支持分布式事务管理。jta依赖容器比如我们常说的数据连接池),容器管理(ejb)来说,spring不支持分布式事务管理。就我的理解spring的目的就是解耦,提供一个很好的面向切面编程接口。哦,我觉得凡是(java语言)应用程序服务器都可以使用spring,而web服务器像阿帕奇就不行。从bean的角度来区别ejb和spring的话,就是ejbbean和javabean的区别。呵呵,哥只是在某公司试用了一个月的菜鸟(刚毕业),大婶不要喷我啊。
|
|
返回顶楼 | |
发表时间:2011-01-08
最后修改:2011-01-08
tomcat不用Spring的原因是我自已的想法,可能有不馁之处:
因为Spring给程序规定了一个相对比较死的条条框框,这些是适合常规的企业及软件的,对这样的软件是有好处的,可以规范化这类软件的开发。 而对于Tomcat,Spring并没有直接的技术支持,因此Tomcat需要完全采用自已的设计,这就没必要引入Spring了。 你的这段话里,问题太多。 1.开发团队决定用不用Spring,那开发团队,根据什么决定的? 2.spring和ejb的问题,上网上找找资料吧,我也是外行,具我所知你说的不对。 3.spring也可以使用jta 4.Spring和ejb的目的是一样的。只是一个是轻量级实现,一个是重量级实现。 5.什么叫应用程序服务器? |
|
返回顶楼 | |
发表时间:2011-01-08
最后修改:2011-01-08
唉!这贴有点鸡肋了。希望资深Spring的使用者,能发表一下看法。
|
|
返回顶楼 | |
发表时间:2011-01-08
gdpglc 写道 唉!这贴有点鸡肋了。希望资深Spring的使用者,能发表一下看法。
你真幼稚,而且还不可教也,而且你的个性不变,你做一辈子软件也不会有什么出息,真的。你大势已去! |
|
返回顶楼 | |
发表时间:2011-01-08
技术贴,还是说技术吧。搞人身攻击很无聊!
|
|
返回顶楼 | |
发表时间:2011-01-08
最后修改:2011-01-08
gdpglc 写道 技术贴,还是说技术吧。搞人身攻击很无聊!
你总结的那个叫技术?你知道SPRING当初的初衷是什么么? 你读过RJ的那本《J2EE WITHOUT EJB》么? 你用SPRING当初解决的东西,拿到这个时代来再次看待SPRING给我们带来什么,你知道当今的情况跟那个时代的相差是多么大么?你根本就没弄明白IOC的真正含义。你的这种问题本来就不是技术问题,是哲学问题,你不知道科学一切归根到最后还是哲学么?你压根就不懂我们的意思,在这里鬼叫鬼叫。不可教也者,难成大器,你还是早些回家洗洗睡吧。 ![]() |
|
返回顶楼 | |
发表时间:2011-01-08
最后修改:2011-01-08
正在读大四的新手,还没达到什么高深的思想
但对于Spring的好处,我想,假如你在某个项目中没有用到它,就会想到到它存在的理由,当然,前提是你没有用其它技术替换spring 另外,希望大家能够以事论事,少搞人身攻击,毕竟有思想上的冲突是很正常的事情,如果每个人都被统一了思想,这种“和谐”才可怕! 想起一句话:我不同意你的意见,但我誓死捍卫你说话的权利 |
|
返回顶楼 | |
发表时间:2011-01-08
kongruxi 写道 正在读大四的新手,还没达到什么高深的思想
但对于Spring的好处,我想,假如你在某个项目中没有用到它,就会想到到它存在的理由,当然,前提是你没有用其它技术替换spring 另外,希望大家能够以事论事,少搞人身攻击,毕竟有思想上的冲突是很正常的事情,如果每个人都被统一了思想,这种“和谐”才可怕! 想起一句话:我不同意你的意见,但我誓死捍卫你说话的权利 不好意思,我也大四, |
|
返回顶楼 | |