对IOC的理解
IOC说起来,其实是一种编程思想或原则。相对于传统的编程方式(如从前文到后文这样串行顺序的方式),比如用传统方式,当我依赖一个对象,我要去创建它,对它进行属性配置,然后我才能使用这个对象。
但是对于IOC这种方式来说,它使对象或者组件的创建更为透明,不需要过多的关注细节(如创建对象、给对象设置属性,这些ioc容器都给我们设置好了),以达到解耦的目的。控制反转,简单来理解其实就是把获取依赖动象的方式,交给IOC容器来实现,由主动拉取,变为被动获取。
IOC的主要实现策略
(1)服务定位模式(service locator pattern)
这种模式是Java EE里面所定义的一种模式,通常通过JNDI这种技术获取Java EE的组件,比如说获取EJB组件或者DataSource
(2)依赖注入
依赖注入的几种方式:构造器注入(Constructor Injection)、参数注入(Parameter Injection)、Setter注入(Setter Injection)、接口注入(Interface Injection)
(3)依赖查询
这是有另一种技术来实现的,比如说Java里面有Java Beans技术,Java Beans里面有一个通用的上下文叫做BeanContext,既可以传输bean,也可以管理bean的层次性
(4)模板方法的设计模式
这种设计模式在Spring里面大量的会用的,比如说Spring JDBC会用到JDBC template这样的实现