sayhitoloverOvO 2021-08-15 09:47 采纳率: 100%
浏览 104
已结题

Spring IOC比new定义方便,那么到底方便在哪里呢?

Spring IOC需要添加注解标志,还要添加配置文件添加bean,最后使用还要加载配置文件获取bean才可以调用,那么为什么说会比new新的对象要方便?只是因为Spring框架可以控制变量的生命周期吗?但是普通代码块结束后变量一样会释放,又有什么区别呢?
如果说是方便DI的话加一个注解确实比普通的get set方法方便一些,但也不至于会比普通定义方便很多吧?

  • 写回答

3条回答 默认 最新

  • 悬弧 2021-08-15 10:22
    关注

    您问到的,方便在哪里?我说下几点
    1.代码更简洁,注解就搞定
    2.交由spring容器管理bean,就是相当于建立了一个代理,可以随意拓展,不需要修改原来代码

    可能您是初学者,估计还没能感受到拓展这一词的重要性,比如有一个接口方法,里面的业务逻辑很复杂,各种判断条件,这个接口已经部署到生产稳定使用了1年,现在产品想要在这个接口方法参数中,根据某个条件,满足的话,就插入一条日志记录到数据库中。这时候你怎么做?
    大致有两种做法:
    1.直接在原来接口上改,增加关于某条件的判断插入日志记录到数据库
    2.不修改原来的接口进行拓展,使用代理的方式,在方法调用前后进行捕获参数判断插入日志逻辑

    正常情况下,对于正常在使用的接口,除非是不得不去改,否则不要去动,因为我们根本不知道实现该方法的人的具体思路,可能动进去就是牵一发动全身,影响了所有的功能,那这个锅就得你背了,我想你不会含冤背锅的吧
    因此,一般我们都是对接口进行拓展,基于spring aop去拓展,就不会影响到原有业务功能了

    这还只是一个案例,可能还有些代码,打成了jar包,让你在jar包里面做扩展,这时,new出来的对象,将会让你哭笑不得,因为,jar包里面都是class文件的,根本无法编辑和修改

    现在的springboot 不需要那么麻烦了,不需要在配置文件xml配置bean了,会更方便。而且现在主流也是springboot了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月23日
  • 已采纳回答 8月15日
  • 创建了问题 8月15日

悬赏问题

  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python