目录
1.1 AOP概念(Aspect Orient Programming)
1.2.1 通知(Aspectj表示切面的执行时间用的通知)编辑
底层就是动态代理
一:AOP(面向切面编程)
jdk、CGLIB两种方式
源代码可能改动的比较多
重复的代码比较多
代码难以维护
通过一个类代理对目标的操作就是面向切面编程。
1.1 AOP概念(Aspect Orient Programming)
AOP是面向切面编程:切面就是指附加的功能(日志功能、附加功能、权限监测等)
AOP的作用是让切面功能复用
AOP中的术语
AOP的实现方法由Spring和AspectJ(常用)
1.2 AspectJ框架的使用
1.2.1 通知(Aspectj表示切面的执行时间用的通知)![](https://img-blog.csdnimg.cn/26353f2417344019b8930a4157d2d368.png)
1.2.1 Pointcut位置(切面执行的位置)
任意返回值,任意包名方法名,任意参数列表,只要是public类型
使用AspectJ的框架实现前置注解(@Aspect仅仅表示一个切面类,不能够创建对象)
切面类(Aspect)
时间(Advance)
切入点(pointCut)
前置通知:
@Before(Value = "execution()")
jointPoint是通知方法中的参数,用于获取目标对象的相关信息
后置通知:
@AfterReturening在目标方法之后执行,res与参数中的值相同
环绕通知:
二:AOP执行过程
首先读取xml文件,在文件中执行<bean>语句,创建对象,然后通过AspectJ框架中的
<aop:aspectj-autoproxy/>
语句找到切面类,再通过切入点表达式找到需要加入切面类的目标对象。