IOC
什么是IOC (Inversion of Control)?
顾名思义IOC就是控制反转。
依赖注入的基本思想是:用一个单独的对象获得接口的一个合适的实现,并将其实例赋给调用者的一个字段。
何为控制反转?
对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。
往常我们编写java程序是,当一个java类需要调用另一个类对象是,我们往往采用new Object(),这种方法来获取所需要的对象的实例。
这种方法,我们必须自己手动创建这个对象,创建之后我们还要负责销毁这个对象。
这时候,对象始终会和其他的接口或类耦合在一起。
如果使用控制反转的方式则会相对来说简单一些,spring提供一个容器,这个容器中登记着所有的类,当我们需要使用某一个对象时,我们不需要手动创建这个对象,我们只需要告诉spring,噢,那谁,我需要一个Object,OK,这样,spring就会在系统运行到适当的时机把我们需要的这个对象交给我们,当然,也会把我们交给其他需要我们的对象。
当我们把自己交给spring之后,所有类的创建、销毁都有spring控制,也就是说控制对象生存周期的不是引用他的对象,而是spring。
对于某一个具体的对象而言,以前是他控制他依赖的那些对象,但是现在所有的对象都由spring控制,这就叫做控制反转。