admin管理员组文章数量:1487745
Spring AOP 中@Pointcut的用法(多个Pointcut)
Spring AOP 中@Pointcut的用法(多个Pointcut)
代码语言:javascript代码运行次数:0运行复制/**
swagger切面,分开来写
**/
@Aspect
@Component
public class ApiOperationLogAspect {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Pointcut("@annotation(io.swagger.annotations.ApiOperation)")
public void pointcut() {
}
@Around("pointcut()")
public Object around(ProceedingJoinPoint point) {
}
}
代码语言:javascript代码运行次数:0运行复制import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface FunctionLog {
String value() default "";
}
/**
自定义切面,分开来写
**/
@Aspect
@Component
public class FunctionLogAspect {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Pointcut("@annotation(com.mytest.insure.annotation.FunctionLog)")
public void pointcut() {
}
@Around("pointcut()")
public Object around(ProceedingJoinPoint point) {
}
}
Spring Boot AOP @Pointcut拦截注解的表达式与运算符 拦截注解的表达式有3种:@annotation、@within、@target 1、@annotation 匹配有指定注解的方法(注解作用在方法上面) 2、@within 匹配包含某个注解的类(注解作用在类上面) 3、@target 匹配目标对象有指定注解的类(注解作用在类上面) @target 和@within的区别: 1、@target(注解A):判断被调用的目标对象中是否声明了注解A,如果有,会被拦截; 2、@within(注解A): 判断被调用的方法所属的类中是否声明了注解A,如果有,会被拦截; 3、@target关注的是被调用的对象,@within关注的是调用的方法所在的类; @PointCut中的运算符 PointCut中可以使用&&、||、! 运算符
同时匹配方法上的和类上的注解 @Pointcut("@annotation(com.test.aop.demo.MyAnnotation) || @within(com.test.aop.demo.MyAnnotation)") public void cutController(){ } 或者 @Pointcut("@annotation(com.test.aop.demo.MyAnnotation)") public void cutController(){ } @Pointcut("@within(com.test.aop.demo.MyAnnotation)") public void cutService(){ } @Pointcut("cutController() || cutService()") public void cutAll(){ }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-01-15,如有侵权请联系 cloudcommunity@tencent 删除注解springaoppublic对象本文标签: Spring AOP 中Pointcut的用法(多个Pointcut)
版权声明:本文标题:Spring AOP 中@Pointcut的用法(多个Pointcut) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/shuma/1754973548a3181919.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论