Spring学习之AOP
一、AOP基本概念
AOP:Aspect Oriented Programming (面向切面编程) 功能:分离与逻辑无关的代码,处理日志、权限、拦截功能…
AOP横向编程分离逻辑无关的功能、OOP纵向编程实现逻辑功能,两者配合代码简化,代码复用性更强;
与逻辑代码无关的日志…等等模块,AOP提取出来并设计成一个服务对象称为Aspect(类);与逻辑代码无关的行为称为横切关注点(Cross-cutting-concern):拦截什么方法、拦截后如何处理
AOP术语
Aspect | (切面)将横切关注点收集,并设计成一个可用的类 | Aspect=Advice+Poincut |
Advice | (通知)横切关注点的具体实现,4中插入时间方法 | Before Advice、After Advice、Around Advice、Throws Advice |
JoinPoint | (连接点)被拦截的点 | 目标类中与被抽取的共性方法的连接 |
Pointcut | (切入点)带有目标的Advice(拦截什么)通过正则表达式拦截 | 指定切入位置 |
二、使用xml配置AOP
步骤:
1、添加AOP命名空间
xmlns:aop="http://www.springframework.org/schema/aop"、http://www.springframework.org/schema/aop、http://www.springframework.org/schema/aop/spring-aop.xsd"
2、创建切面类(Aspect)
3、添加各种通知通知(Advice)
4、配置xml
- 添加Aspect的Bean信息
- 在
<aop:config>
中添加Aspect、共享Pointcut
pointcut正则表达式匹配:
execution(方法返回值 包名.类名.方法名(参数))
例:execution(* com.hgl.day03.IHello.*(…))
匹配com.hgl.day03包下的IHello类的所有方法