AOP 面向切面编程
aop是面向切面编程,是使用动态代理技术,实现在不修改java源代码的情况下,运行时实现方法功能的增强。
相关概念:
-
什么是切面?
重复执行的代码抽取出来,形成一个工具类,把这个工具类就叫做切面类。
切面类: 重复的代码只要些一次,自动调用,自动运行。
-
什么是面向切面编程?
AOP(Aspect Oriented Programming),即面向切面编程。
面向切面编程,面向重复的代码编程,重复的的代码只要些一次,自动调用自动运行。
-
面向切面编程好处?
好处:提供开发效率。降低维护成本。重复的代码只些一次,统一维护。
-
常用的切面类
- 日志切面类
- 事务切面类
- 权限切面类
-
代理的好处(不修改目标对象方法,实现对目标对象方法的增强。)
通过代理访问目标对象,没有把目标对象直接暴漏给调用者,确保了目标对象的安全性;
通过代理访问目标对象,可有在不修改目标对象方法的基础上进行增强。
通俗的讲:
连接点:目标对象中所有等待增强的候选方法
切入点:目标对象要被增强的方法就是切入点
切入点表达式作用:生成代理对象。
通知(增强):就是对目标对象进行的扩展功能
织入:织入指的是把增强用于目标对象
切面:生成代理对象的类就是切面类(切入点+通知)