abcbuzhiming 2014-11-06 09:28 采纳率: 0%
浏览 1071
已采纳

spring的核心作用到底是什么

我没有使用过sun官方的那堆重量级j2ee架构,知道j2ee是从ssh开始,用了这么长回见,包括研究源码后,我赫然发现对于spring,我往往只用到了它的两个功能,依赖注入和事务管理,可是依赖注入的原理我都搞明白,手动注入又有啥不可以,虽然说手动注入有耦合问题,但是spring的注入并不是很灵活,尤其是需要临时生成某个属性参数的场合。不用spring进行事务管理,很多数据库中间件自己的模板管理的也不错,那spring还有什么存在的意义。spring这东西当初到底为了啥被发明出来的

  • 写回答

5条回答 默认 最新

  • zuoshang 2014-11-06 11:16
    关注

    用了这么长时间Spring,我已经将依赖注入看的比较淡了,我更看重Spring在Java领域的整合能力。
    依赖注入最早的目的就是解耦,包括事务管理也是为了解耦,所谓解耦说白了就是替换底层时,上层代码无需修改。说的专业就是,上层代码不关心底层的实现,接口对接好就ok。但实际上,底层替换这种事情,一般人在有生之年估计都遇不到一次,呵呵。
    所以我喜欢的依赖注入,是因为它帮我管理了单例,我不用去纠结自己写懒汉式单例,还是饿汉式单例,甚至牛逼的枚举式单例。至于spring提供bean的多实例,从来不用,和我自己new没什么区别。 这里应该说明了你的“手动式注入”吧。

    我更看中spring的整合能力,现在凡是java领域比较火的工具和方向,基本spring都会插一脚。开个玩笑,spring嫌大多数人代码写的太丑,说算了算了你们干脆都配在我的xml里吧,然后用我提供的xxxTemplate方法简单传几个参数,就能发JMS、发webservice、插数据库、存缓存、批处理等等等,呵呵 :D 。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • lzzjn 2014-11-06 11:13
    关注

    麻烦你把问题讲清楚

    评论
  • btbear 2014-11-06 12:38
    关注

    依赖注入,粘合剂,对象管理,面向切面

    评论
  • iteye_7589 2014-11-06 13:15
    关注

    要理解 spring的意义,最好先看 rod johnson 的

    在人月神话里,说过,软件开发没有银弹。

    但对于企业来说,节省成本 保护投资,可以说非常重要。

    其中一种选择就是 实现一些通用性组件,以及可以动态更换的组件,以扩充功能。

    这样,在不同的业务,还是有些东西可以重用,即将成本转到固定成本中,而降低整体成本。J2EE就是为此设计的。

    在实践中,J2EE有些过度设计了,不是降低编程难度,而是增加了。

    在 Rod的解析中,容器确实可以帮助 实现 组件的按部署耦合,但是 有更轻量级的做法。
    因此 他设计并实现了 spring框架。

    由上面所说,如果仅仅是一两个项目,功能很少,很难体会到spring的好处。
    做一个功能不断添加的项目时,如果一开始规划比较好,就能体会到,在增加新的功能时,spring的粘合作用的好处了。

    评论
  • freedamjustice 2014-11-06 15:38
    关注

    最早的spring主要是IOC(依赖控制),和AOP(面向切面). 其中IOC应该是最初这个框架的核心。

    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 关于c语言的学习问题
  • ¥15 activity升级到flowable工作流act_ge_bytearray的草稿json数据复制到act_de_model 的model_editor_json的脚本
  • ¥15 cvi使用CreateThread创建线程时,出现存储空间不足无法处理此命令的错误
  • ¥15 求苹果推信imessage批量推信技术
  • ¥15 ubuntu 22.04 系统盘空间不足。隐藏的docker空间占用?(相关搜索:移动硬盘|管理系统)
  • ¥15 c++ word自动化,为什么可用接口是空的?
  • ¥15 Matlab计算100000*100000的矩阵运算问题:
  • ¥50 VB6.0如何识别粘连的不规则的数字图片验证码
  • ¥16 需要完整的这份订单所有的代码,可以加钱
  • ¥30 写一个带界面控制的机房电脑一键开机关机并且实时监控的软件