Springboot切面问题

本文探讨了在Spring框架中使用AOP时,切面方法未能按预期顺序执行的问题。具体表现为部分切面方法在service业务逻辑执行之后才触发,而非之前。文章通过调整切入点表达式和切面类的定义位置来解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

切面问题:

@Before切面定义到service上,有的切面执行正常,但有的每次都是先执行service后执行切面,这个不知道为什么。

把切面定义到Controller上就好了,这个实在不知道是什么原因。

 

切面类:

@Aspect
@Order(3)
@Component
public class DataSourceAspect {
    private Logger logger = LoggerFactory.getLogger(this.getClass());

    //切点
    @Pointcut("execution(* com.hui.controller..*.*(..)))")
    public void aspect(){}

    @Before("aspect()")
    private void before(JoinPoint joinPoint){
        System.out.println("before切面执行");
    }
}

把切入点定义到service上始终有几个service的切入点不能正常执行,都是在执行完service之后才执行切面的内容,很奇怪,目前不知道是什么原因。

之前的切入点: @Pointcut("execution(* com.hui.controller..*.*(..)))")

有没有人遇到过相同的情况?一起来探讨下!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值