AOP拦截规则

简介: AOP拦截规则

在AOP(面向切面编程)中,可以通过定义切面和切点,来实现对特定方法的拦截和增强。切面定义了拦截特定方法的逻辑,切点定义了被拦截的特定方法。

下面是一个切面和切点的例子:

@Aspect
@Component
public class LoggingAspect {

@Pointcut("execution(* com.example.service.UserService.*(..))")
public void userServiceMethods() {}

@Before("userServiceMethods()")
public void beforeAdvice(JoinPoint joinPoint) {
    // 执行拦截前的逻辑
}

}
在这个例子中,我们定义了一个LoggingAspect切面,并使用@Pointcut注解定义了一个切点userServiceMethods。这个切点定义了拦截UserService类中全部方法的规则(使用execution表达式)。

我们使用@Before注解,在beforeAdvice方法运行前拦截userServiceMethods的目标方法,并执行拦截前的逻辑。JoinPoint参数包含了目标方法的信息,如方法名和参数等。

除了@Before外,还有许多其他的Advice注解,如@After、@Around、@AfterThrowing和@AfterReturning等。这些注解可以定义拦截的时机和拦截后的逻辑。此外,execution表达式支持更加精细的定义,如按返回类型、方法名、参数类型等条件进行类方法的匹配和拦截。

相关文章
|
6月前
|
缓存 Java Sentinel
Springboot 中使用 Redisson+AOP+自定义注解 实现访问限流与黑名单拦截
Springboot 中使用 Redisson+AOP+自定义注解 实现访问限流与黑名单拦截
|
4月前
|
容器
springboot-自定义注解拦截ip aop和ioc
springboot-自定义注解拦截ip aop和ioc
|
6月前
|
Java 测试技术 开发者
【亮剑】通过自定义注解实现Spring AOP,可以更灵活地控制方法拦截和增强
【4月更文挑战第30天】通过自定义注解实现Spring AOP,可以更灵活地控制方法拦截和增强。首先定义自定义注解,如`@MyCustomAnnotation`,然后创建切面类`MyCustomAspect`,使用`@Pointcut`和`@Before/@After`定义切点及通知。配置AOP代理,添加`@EnableAspectJAutoProxy`到配置类。最后,在需拦截的方法上应用自定义注解。遵循保持注解职责单一、选择合适保留策略等最佳实践,提高代码可重用性和可维护性。记得测试AOP逻辑。
191 1
|
6月前
|
设计模式 算法 Java
AOP跨模块捕获异常遭CGLIB拦截而继续向上抛出异常
最近,在开发过程中,我遇到一个不易察觉的小bug。这个bug并没有直接给出报错信息,使得排查问题的根源变得困难。我希望通过分享这个经验,帮助大家避免重蹈覆辙,以免浪费不必要的时间和精力。为了避免类似的困境,我们应当时刻保持警惕,对开发过程中的每一个细节都进行严格的检查。同时,利用调试工具和日志输出等功能,可以帮助我们更快速地定位和解决问题。此外,定期进行代码审查和测试也是非常必要的,这有助于发现潜在的问题并及时解决。
128 1
|
Java Maven Spring
如何通过自定义注解来实现 Spring AOP,以便更加灵活地控制方法的拦截和增强?
如何通过自定义注解来实现 Spring AOP,以便更加灵活地控制方法的拦截和增强?
103 0
|
SQL Java 数据库连接
Mybatis中sql拦截增强-AOP+interceptor实现分页和排序
基于interceptor可以实现sql的完整打印,除了实现打印之外。其实还可以实现分页和排序,下面的分页和排序基于aop+mybatis的interceptor实现。其本质还是对mappedStament的boundSql进行增强。 下面的项目来源于github,通过这个我们可以很好的学习mybatis中插件interceptor的使用。
858 0
Mybatis中sql拦截增强-AOP+interceptor实现分页和排序
Springboot AOP 拦截 直接返回结果数据
Springboot AOP 拦截 直接返回结果数据
402 0
Springboot AOP 拦截 直接返回结果数据
Springboot AOP Aspect 拦截中 获取HttpServletResponse response
Springboot AOP Aspect 拦截中 获取HttpServletResponse response
376 0
Springboot AOP Aspect 拦截中 获取HttpServletResponse response
|
Java 关系型数据库 MySQL
【SpringBoot 基础系列】接口上注解 AOP 拦截不到场景兼容实例演示
在 Java 的开发过程中,面向接口的编程可能是大家的常态,切面也是各位大佬使用 Spring 时,或多或少会使用的一项基本技能;结果这两个碰到一起,有意思的事情就发生了,接口方法上添加注解,面向注解的切面拦截,居然不生效 这就有点奇怪了啊,最开始遇到这个问题时,表示难以相信;事务注解也挺多是写在接口上的,好像也没有遇到这个问题(难道是也不生效,只是自己没有关注到?) 接下来我们好好瞅瞅,这到底是怎么个情况
561 0
【SpringBoot 基础系列】接口上注解 AOP 拦截不到场景兼容实例演示
|
XML 移动开发 Java
【框架】[Spring]AOP拦截-使用切点:AspectJExpressionPointcut-切点语言
【框架】[Spring]AOP拦截-使用切点:AspectJExpressionPointcut-切点语言
232 0
【框架】[Spring]AOP拦截-使用切点:AspectJExpressionPointcut-切点语言