IOC是inversion of control缩写,中文翻译为控制反转。没有引入IOC的时候,业务层都是在需要的时候主动服务,这样让业务层和持久层紧密的耦合在一起。一旦需求的需要修改或增加持久层的逻辑,势必导致业务层的代码进行相应的修改,这样就会让程序的维护带来了很大的不方便。
IOC的形象的解释为Don't call us,we will call you,即你需主动的调用我,当你需要的时候我会自动注入到你那。
Spring通过配置文件配置,把需要的类都配置到IOC容器中,这样当业务层需要的时候,IOC容器把你需要的类注入到你的业务逻辑中。
[img]http://dl.iteye.com/upload/attachment/267971/5ef1bdf6-10a2-32a4-aa42-d23f8bf7509c.jpg[/img]
IOC有三种注入方式
1.接口注入方式。被注入对象如果希望IOC Servic Provider为其注入依赖对象,就必须使得被注入对象实现某个接口,这个接口提供一个方法,用来为其注入依赖对象。IOC Service Provider最后通过这个接口知道被注入对象注入了什么依赖对象。这种实现注入方式因为实现了某个接口,有侵入性,所以现在不提倡这种方法实现IOC注入。
2.setter方法注入。当前兑现只要为其依赖对象所对应的属相添加setter方法,就可以通过setter方法将相应的依赖对象设置到北注入对象中。setter方式是在依赖对象构造完成后再注入的。
3.构造方法注入。被注入的对象可以通过在依赖对象的构造方法中声明依赖对象的参数列表。让IOC容器知道被注入对象需要哪些依赖对象。
IOC的形象的解释为Don't call us,we will call you,即你需主动的调用我,当你需要的时候我会自动注入到你那。
Spring通过配置文件配置,把需要的类都配置到IOC容器中,这样当业务层需要的时候,IOC容器把你需要的类注入到你的业务逻辑中。
[img]http://dl.iteye.com/upload/attachment/267971/5ef1bdf6-10a2-32a4-aa42-d23f8bf7509c.jpg[/img]
IOC有三种注入方式
1.接口注入方式。被注入对象如果希望IOC Servic Provider为其注入依赖对象,就必须使得被注入对象实现某个接口,这个接口提供一个方法,用来为其注入依赖对象。IOC Service Provider最后通过这个接口知道被注入对象注入了什么依赖对象。这种实现注入方式因为实现了某个接口,有侵入性,所以现在不提倡这种方法实现IOC注入。
2.setter方法注入。当前兑现只要为其依赖对象所对应的属相添加setter方法,就可以通过setter方法将相应的依赖对象设置到北注入对象中。setter方式是在依赖对象构造完成后再注入的。
3.构造方法注入。被注入的对象可以通过在依赖对象的构造方法中声明依赖对象的参数列表。让IOC容器知道被注入对象需要哪些依赖对象。