spring ioc的好处是什么?不用new对象了?可是也要xxx.getBean()啊?没觉得有啥好处啊?

解决方案 »

  1.   

    解耦合。 很多时候都是在A类里面需要new B类调B类的方法,这样的话就耦合了。
      

  2.   

    https://www.zhihu.com/question/23277575
      

  3.   

    主要是起到一个生命周期管理的问题,你要再实际应用环境才能体会这种好处,我给你举个例子:
    现在有A,B,C,D四个类,我的A类中依赖于B类的一个实现,B类依赖C 类的一个实现,C类依赖D类的一个实现,也就是说现在你要使用A类的时候必须先将B,C,D三个类全都手动new出来然后才能使。
    然后你想想IOC是怎么做到,他直接将类与类的依赖关系写在了配置文件中通过容器加载管理,你用的时候直接拿到A类就可以是不是很方便?当然我提的这个例子并不是IOC控制反转的全部意义
      

  4.   

    我刚接触ioc也是和你一样认为的
    不过IOC用处很多,首先是楼上说的解耦合,你想想spring是不是连基本对也管理,肯定不是呀。IOC就是帮你管理父子类、调用与被调用类之间的关系的。
    然后 是IOC的对象生产模式,我们都知道,spring都是用单例模式的,如果你自己搞那,那每个对象都要写一个单例生产类麻烦,注解不是方便很多。
    最后 知道AOP吧,他不帮你管理对象怎么对你的对象进行改造,没有IOC就无法实现注解事物管理了。就像在淘宝上买东西,他为你提供商家,当你说我想要买衣服的时候,他可以跟据他的匹配方式(代码里是你的配置)为你提供店面,而且只要匹配方式(配置)一改
    你下次用相同的参数搜索的时候,搜索到的东西也不一样。
    这样做 模块与对象无关,与接口相关,业务与对象相关,换个配置就能直接改动业务。个人理解,仅参考。