Spring-AOP实现
AOP的意义:就是让程序员专心的写业务代码,他可以把一个整体切面,程序员只需要写业务代码,非业务代码就可以让Aop来解决。
第一步:导入jar包
第二部:创建一个service类和他的实现类:
实现类里有一个输出语句
第三部:创建Spring的配置文件
到namespaces吧aop和context勾上,就能到配置文件里把组件扫描器扫描 ,声明切面类对象配置,MyAspectJ的代理机制给声明
第四部:创建一个切面(帮助程序员写那些非业务代码):
@Aspect:
作用:修饰类为切面类
位置:在类定义的上面
切面类:把非核心代码,增强的代码,放到这个类中
最后使用测试类来测试:
总结:
1.AspectJ对AOP的实现
1.1:添加相关的jar包
1.2:AspectJ的通知类型
(1)前置通知
(2)后置通知
(3)环绕通知
(4)异常通知
(5)最终通知
1.3:定义切面类
定义方法,在方法上定义各种注解通知
切入点表达式规则:
execution(访问权限 方法返回值 方法名(参数) 异常类型)
切入点表达式要匹配的对象就是目标 方法的方法名
execution(* cn.lexed.service.*.*(..))
execution(* cn.lexed.service..*.*(..))
public * adduser(com.pb.entity.user):"*"表示匹配所有类型的返回值
public void *( com.pb.entity.user):"*"表示匹配所有方法名
public void adduser (..): ".."表示匹配所有参数个数和类型
* com.pb.service.*.*(..):匹配com.pb.service包下所有类的所有方法
* com.pb.service..*(..):匹配com.pb.service包及子包下所有类的所有方法。