1、面向切面编程是什么?
面向切面编程:Aspect Oriented Programming
在的程序纵向执行的顺序基础上,在一个或某个方法中添加通知,使之形成横向切面的过程:叫做面向切面编程
2、面向切面编程用什么用?
从整体上来看:程序执行方法:分而治自,自成一派。
从内部上看:分工更加具体化了
3、实现面向切面编程的方法有什么?
1、Schema-Based
1、导入jar包:4个核心包(core、expression、context、bean)、整合包:spring、日志包、Springalli
2、创建applicationContext.xml
3、创建:切点类
4、创建通知类
5、在applicationContext中:由Spring管理(通知类); 在<aop-config>标签中:配置<aop-advice>关联通知
6、最后再管理:Demo(切点类)
Shema-Based:通知异常
关键点:实现接口ThrowAdvice然后自己:重写其中的方法
然后:在<aop:config>中直接关联即可
Schema-Based:环绕通知
关键点:实现MethodInterceptor接口,是:aopalliance包下的
前置+ proceed()+后置
2、AspectJ
1、导入jar包、创建applicationContext.xml
2、创建切点类:Demo
3、创建异常通知类:ThrowAdvice
4、配置applicationContext.xml
1、<bean> 管理:异常通知类
2、<aop:config>
一:设置切点<aop:pointcut>
二:AspectJ<aop:aspect ref="关联通知类">
<aop:after-throwing method="异常通知类方法"
ref-pointcut="切点" throwing="异常通知方法参数名">
</aop:aspect>
</aop:config>
3、AspectJ:注解形式(给方法添加通知)
1、导入jar包:核心 + tx + context +aop +aopalliance + AspectJweaver(版本低可能报错)
2、在切点类中:添加@Component(由Spring管理),@PointCut切点(execution (* 切点名))
3、在通知类中:@Component 、@Aspect 、@(Before、After、AfterThrowing)等