IOC和AOP是什么鬼?
Posted CTO技术
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOC和AOP是什么鬼?相关的知识,希望对你有一定的参考价值。
01
Spring
02
IOC
控制反转(IOC),一种设计思想,它是Spring的核心。
我们分别从控制和反转来理解IOC。
控制,即我们平时直接在对象的内部new一个依赖的对象,啥意思?你new了一个儿子对象,是不是还得在儿子对象中new它的依赖对象父亲对象!在IOC中意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
反转,我们平时在对象内部直接new依赖对象的操作就是反转的对立,IOC容器帮我们创建及注入依赖对象的行为就叫反转。
IOC对于Spring框架来说,就是由Spring来负责控制对象的生命周期和对象间的关系。对于这个描述还是不理解的话,
你需要找个女盆友(男盆友也行),要求是S型曲线,瓜子脸,肤白貌美……,显然除了你一个个去“New”没有其它办法。但是现在有了“中介”,你直接把你的要求告诉中介,中介直接给你提供“对象”,“女朋友找中介“,是不是很爽?,是的,IOC干的这样的事。简而言之,对象交给 Spring(IOC)控制管理,而不是传统的由你在对象内部直接创建控制。
03
AOP
以实现一个系统的登录举例,
我们可以把业务流程1和业务流程2看做核心业务逻辑(竖着看),但是横着的验证,日志记录等这些不属于核心业务逻辑却必须要做(不做这些你试试?),横着的这部分就叫做横切关注点,整体上看就像验证日志这些功能横着切入竖着的核心业务流程当中去的,有木有很形象?!
AOP的好处不言而喻:
横切关注点都集中于一块,不会出现大量重复代码;
核心模块只关注核心功能的代码,模块间藕合度降低。
简而言之,AOP就是在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想。
04
总结
CTO技术
关注我
以上是关于IOC和AOP是什么鬼?的主要内容,如果未能解决你的问题,请参考以下文章
Spring AOPAspectJCGLIB 都是什么鬼?它们有什么关系?