控制反转(IoC)
IoC设计思想
IoC是一种设计思想,用来解决类与类之间的耦合问题。IoC意味着你将设计好的对象交给容器,而不是传统的你在对象内部直接创建。这样可以用来降低计算机代码之间的耦合度,这种设计思想最常见实现方式是依赖注入(DI),还有一种方式叫做以来查找(Dependency Lookup)。
对于为什么IoC能够降低代码耦合性,可以查看我的另一篇博客。
IoC容器及其功能
管理所有JavaBean的容器叫做IoC容器,它可以管理所有轻量级的JavaBean组件。提供的底层服务包括:
- JavaBean生命周期管理
- JavaBean配置和组装服务
- AOP支持
- 以及建立在AOP基础上的声明式事务服务等。
AOP
Spring 框架的一个关键组件是面向方面的编程(AOP)框架,即面向切面编程。
AOP是一种编程方式,讲解AOP之前我们可以先回顾一下我们熟悉的OOP(面向对象编程),OOP的主要功能是数据的封装、继承、多态,OOP比较封闭,比如在很多方法中存在的安全检查、日志记录等功能都是大量重复代码,可是如果采用抽象的手段将这些抽象成一个工具类,仍需要调用工具类,增加了代码之间的耦合。这时AOP就有用武之地了。
AOP的做法是采用非入侵式代码。也即不用修改原来的代码,只需要添加代码,然后告诉Spring,我需要在调用某个方法之前(后或者前后),执行我新增的代码即可。