认识IOC
什么是 IoC ?
简单地说,IoC 是反转控制,类似于好莱坞原则,主要有依赖查找
和依赖注入实现
什么场景都在使用IOC实现,比如java beans,servlet容易也是IOC实现,因为servlet可以通过依赖或者反向的jndi的方式得到一些资源
好莱坞原则:你不要主动找我,我会主动找你
DI也是ioc的原则
依赖查找和依赖注入区别
依赖查找是主动或者手动的依赖查找方式,通过需要依赖容器或者标准API实现,而依赖注入则是手动或者自动依赖绑定的方式,无需依赖特定的容器和API
简单讲依赖查找是一种主动或者手动的一种依赖查找方式,那么他需要一个介质或者需要一个鉴定服务来鉴定,比如说可以通过类型或者一个路径这种方式去查找,那么通常他是需要依赖于容器的标准API,比如servletAPI,JNDIAPI,EJBAPI 显现的调用API方式获取你想要的的资源。
依赖注入不需要容器特定的API实现注入方式。例如我需要某个Bean,我只需在类中方法或字段上添加@Autowired或@Resource注解即可,由IoC容器来帮我完成查找并注入。
Spring作为IOC容器有什么优势
典型的 IoC 管理,依赖查找和依赖注入( 在Spring里更注重依赖注入,其实依赖查找和依赖注入特性其实没有本质上的区别,其实底层实现如出一辙)
AOP 抽象
事务抽象
事件机制
SPI 扩展
强大的第三方整合
易测试性
更好的面向对象