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

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 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含