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