我理解的AOP!

来源:互联网 发布:毛毛雨知乎 编辑:程序博客网 时间:2024/04/24 19:02


前面补充!

ApplicationContext容器:

   当容器被创建时,会自动将容器中所有的Bean创建。

   优点:系统响应速度快。

   不足:浪费系统资源。

 

BeanFactory容器:

   当容器被创建时,并不会自动将容器中的任何Bean创建。只有当真正使用该Bean时,才会由容器创建这个Bean

   优点:节省系统资源。

   不足:相对来说,系统响应速度慢。

AOP

AOPAspect OrientProgramming,面向切面编程。是一种概念,是一种思想,其实现者很多,Spring就是实现者之一。

        AOPOOP的一种补充。OOP是从静态角度考虑程序的结构,而AOP是动态角度考虑程序的运行过程。

        Spring用于降低耦合度。IoC用于降低主业务逻辑之间的耦合度;AOP用于降低主业务逻辑与系统级服务(交叉业务逻辑)间的耦合度,将系统级服务在运行时织入到主业务逻辑之中。

        SpringAOP的底层工作原理,是使用动态代理对主业务进行增强。而动态代理使用的是JDKProxyCGLIB两种动态代理。

切面(Aspect

切面就是交叉业务逻辑,就是要对主业务进行增强的部分。AOP编程中常见的切面有两种:通知、顾问。

织入(Weaving

将切面切入到主业务逻辑中的过程,称为织入。

连接点(JoinPoint

可以织入切面的目标类中的目标方法,称为连接点。

切入点(Pointcut

真正织入切面的目标类的目标方法,称为切入点。切入点一定是连接点。

目标对象(Target

用于被增强的对象,称为目标对象。

目标类的对象,就是目标对象。

主业务逻辑所在的类的对象,就是目标对象。

通知(Advice

是一种切面,可以完成简单的织入功能。例如,可以指定织入的时间点。

通知可以指定织入的时间点,切入点指定的是织入的位置。

(1)  顾问(Advisor

(2)  引入(Introduction

 

原创粉丝点击