IoC 的 注入方式有哪几种?为什么很多来面试的人都不知道我在说什么?
我怀疑是不是我的问法有问题?我想听到的答案是:
1. interface
2. setter
3. constructor.这个题的标准问法应该是什么呢?
(我自己GOOGLE过 IoC 注入方式是有相关查询结果出来的.)

解决方案 »

  1.   

    没问题,那是因为来面试的人都没学好spring
      

  2.   

    我不用google,我用百度。百度说:
    通常框架都是设计在先,而应用程序则设计在后,这种前辈拥有主导权, 进而「控制」后辈之情形,就通称为「反向控制」。顾名思义,IoC(Inversion of Control)就是「反向控制」之意思。而它是相对 于「正向控制」一词,所以在本节 裡,将先介 绍「正向控制 (沟通)」之涵意,就能迅速理解「反向沟通」之意义了。 IoC 观念和机制源自于 OO 语言(如 C++、Java 等)的類别继承体系, 例如 Java 语言中,父 類别(Superclass)的函 數可以主动呼叫子類别(Subclass)之函數,这就是 最传统的 IoC 机制,称为「继承体 系 IoC」。后 來,人们常将许多相关的父類别聚集起 來成为框架,逐渐地,延伸为:应用框架主动呼叫 应用程序之情形,就称为 IoC 。 或 者 說 : 会主动呼叫应用程序之框 架 , 就称为IoC框架 ,例如Android、Spring 等等。
      

  3.   

    如果是我回答通过文件配置
    让容器来管理这个对象,而不是类管理,即不用new生成!(好处降低了程序的耦合性)以上那三个答案,楼主能解释一下否?我不理解!
      

  4.   

    3种注入方式 最长用的是 set方法 或 使用构造方法注入  还有一种是  基于特定接口(侵入式方案) 这个我没有用过 也不太清楚  
      

  5.   


    看了这么多的回复,我理解了!要是我,我就这么问?除了使用new来创建对象以外,我们还有什么方法来获取一个对象!
      

  6.   

    楼主问题没有问题,就是问道IoC(控制翻转) 依赖注入给人的第一个反应是,你要问的是spring的东西!
      

  7.   

    回答 4 楼.其实我对SPRING 知道的也并不很深入.
    所以那三种方式. 对于1 我并不了解(也没有实际用过.)而
    2. setter
    3. constructor. 是两种较常用的方式.
    (本人的项目多用第2种方式).关于你说的'通过文件配置让容器来管理这个对象'.
    那当然是对的. 但是个人理解,
    光有配置文件是没有用的.
    IOC 注入的最浅显的概念就是, 一个类比如SERVICE 类要用到一个DAO类.
    首先我们要配置, 把DAO配置到SERVICE底下.然后DAO 会是 SERVICE类里面的一个私有变量.
    这时候如你所说,我们不会去NEW DAO();
    但是这个私有变量怎么才会真正"NEW" 出来呢.?方式3: public Service(DAO dao) {
           this.dao = dao
    }方式2: 在Service类里面为dao 对象提供getter, setter 方法.
      

  8.   

    关于Spring的依赖注入 有哪几种注入方式?