IOC
控制反转,是一种思想,可以用来降低代码之间的耦合度。
在传统的Java开发中,都是由我们在类内部主动创建依赖对象,从而导致类与类之间耦合度较高,有了IOC之后,把创建和注入依赖对象的控制权交给了容器,从而降低了代码之间的耦合度。
反转就是指过去是对象主动去获取依赖对象,现在通过IOC,变成了对象被动的接受依赖对象,所以称之为反转。
依赖注入是IOC控制反转的一种实现方式。
依赖注入DI是指程序运行过程中,若需要调另外一个对象协助时,无须在代码中创建被调用者,而是依赖于外部容器,由外部容器创建后传递给程序。
依赖注入让Spring的Bean之间以配置文件的方式组织在一起,而不是以硬编码的方式耦合在一起的。
AOP
AOP意为面向切面编程,它是一种编程思想,是面向对象编程(OOP)的一种补充,AOP将一些程序抽象成切面,可以保证开发者在不修改源代码的前提下,
为系统中的业务组件添加某种通用功能。使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
(横切关注点:跨越应用程序多个模块的方法或功能。如日志 , 安全 , 缓存 , 事务等等 ....切面(ASPECT):横切关注点被模块化的特殊对象。即,它是一个类。
通知(Advice):切面必须要完成的工作。即,它是类中的一个方法。切面的工作被称为通知。织入(Weaving),AOP术语。把切面(aspect)连接到其它的应用程序类型或者对象上。)
五种增强/通知
前置通知(@Before)
后置通知(@Ater)
返回通知(@AfterReturning)
异常通知(@AfterThrowing)
环绕通知(@Around)