动态代理

动态代理:

  1. 代理对象
  2. 目标对象

 

通过动态代理的类全都继承proxy类

 

为什么找代理对象?

 

 

InvocationHandler:代理对象实现功能的方式

Object[] args代表的就是参数列表

Object… args 长度可变的参数列表

 

作业:实现日志功能

 

AOP

AOP概述

OOP:面向对象编程  纵向继承机制    找到对象 调用对象方法

AOP:面向切面编程  横向抽取机制    把某些代码抽取出来 作用到

(AOP是对OOP的补充,两者间不是谁包含谁的关系)

切面(aspect):保存公共功能(横切关注点)的类

AOP的好处

每个事物逻辑位于一个位置,代码不分散,便于维护和升级

业务模块更简洁,只包含核心代码

AOP图解

Spring之AOP

 

AOP术语

横切关注点

从每个方法中抽取出来的同一类非核心业务

切面(Aspect)

封装横切关注点信息的类,每个关注点体现为一个通知方法

通知(Advice)

切面必须要完成的各个具体工作

通知(切面中的叫法)与横切关注点(抽取类中的叫法)不同地方不同的叫法

 

目标

被通知的对象

代理

向目标对象应用通知之后创建的代理对象

连接点

 

在Spring中启用AspectJ注解支持

Aspect是Java社区里最完整最流行的AOP框架

导入jar包

Spring之AOP

 

引入aop命名空间

 

Copy qualified Name获取方法所在包名、类名以及参数类型

Spring之AOP

 

com.atguigu.spring.aop.MathImpl.add(int, int)

Spring之AOP

 

 

相关文章: