java——Spring(3)
2021-02-10 07:17
标签:type 方式 article div 调用 等等 point ring mat 通知: aspect:把某个类作为切面类,如下,MoocAspect类即为切面类 切入点: 等等 例如: 这个表示切入点为biz包下所有后缀为“Biz”类里的所有方法;切面为MoocAspect类; advisor(通知):例: 前置通知,在切面类里定义好before方法; 在定义通知方法中,比较特殊的是arround Advice,应该该通知方法的第一个参数必需是ProceedingJoinPoint类型的,如: 结果: 其中打印出的bIz表示的则是业务类的内容,实现了环绕通知 如果要绑定某个方法进行环绕通知,需要在配置时指定所环绕方法的参数类型与参数名称: 且在切面类中定义环绕方法aroundInit时也需要在第一个ProceedingJoinPoint类型参数后添加相应的参数: 这样就实现了环绕通知方法对某个具体方法的通知,且可以避免因重方法名导致的指定不一的问题 advice各个通知的顺序: 、 为了给业务类提供新增的方法: 配置如下 types-matching:表示所对应的业务类 implement-interface:表示所要引用的接口 default-impl:表示所要引用接口的实例类 测试的时候: 这样就可以调用到FitImpl接口实现类里的方法filter()了。 注意: 实现方式不同 定义切面时,只需要定义一般的bean就行,而定义中引用的通知时,通知必须实现Advice接口。 这个就是advisor实现前通知和后通知需要继承的接口;以下是配置: 这个是正常的aspect的配置: 用aspect切面类里的方法就无需继承Advice类,而只需要定义好指定的方法beforeSleep和afterSleep就好; 使用场景不同 大多用于事务管理。 例如: 而大多用于日志,缓存 AOP各种API java——Spring(3) 标签:type 方式 article div 调用 等等 point ring mat 原文地址:https://www.cnblogs.com/lzj-learn/p/12714691.htmlaop:aspect与aop:advisor的区别