IOC  小白觉得就是原来需要自己new的类  交给了IOC工厂去处理new类这个事情DI 就是原来需要我们自己new的类现在可以通过依赖注入  
依赖注入需要写 一行代码, new新的类也需要写一行代码   优势在在哪里?
有人说改需要改动构造函数  那我直接new一个无参的构造函数呢?觉得这样好像是就没有什么优势了  非要说优势是不是那个工厂模式里的饿汗模式 不用的时候不需要new是一个优势么?  
来自小白的疑问?请求大神解答一下

解决方案 »

  1.   

    楼主没有搞懂IOC是什么东西,IOC是一种编程思想,不是具体的那种技术,SpringIOC是利用bean容器来管理创建好的实例,这些bean默认是单利的。而DI,就是把实例对象赋值给引用变量,这样可以解决对象之间的循环依赖,使得对象的复用性达到最大。
      

  2.   

    修改的时候好修改  你的项目有很多个new  到时候要修改怎么找
      

  3.   

    spring帮你管理那些实例,并且默认是单例模式
      

  4.   

    把功能入口(如:处理web请求、定时任务)绑定到spring管理的bean的方法上;
    这些入口bean依赖的其他基础bean,都交由spring来扫描、初始化、注入;
    基础bean依赖的配置项也由spring来获取和注入。例如基础bean是负责操作数据库的,如果不一开始就完全把依赖注入工作交给spring,就可能有外包写出下面这样高度耦合的代码:
    入口bean必须在new一个基础bean后,先调用基础bean的init方法来传入数据库配置,然后基础bean的update方法才能正常运行;进而同样的new、init、update三连代码出现在多个不同的入口bean里;甚至各个入口bean从不同的配置文件里读取同一个数据库的地址配置。
      

  5.   

    最简单的例子,你今天用MySql,明天要改成Oracle,后天又要改成SqlServer,
    常规作法是每天改代码,今天 new MySql(); 明天改成 new Oracle();如果用注入的方法,源代码都不用改,新增一个Oracle的实现,然后修改一下配置就可以发布了。