Spring AOP的pointcut匹配多个条件时无法注入参数

有如下切点:

@Before("@within(dataSource)")
public void changeDataSource(JoinPoint joinPoint, TargetDataSource dataSource) {
    change(joinPoint, dataSource);
}

这样定义切点时,注解对象dataSource可以正常注入;

但是当切点表达式匹配多个条件时:

@Before("@within(dataSource) || @annotation(dataSorce)")
public void changeDataSource(JoinPoint joinPoint, TargetDataSource dataSource) {
    change(joinPoint, dataSource);
}

注解对象dataSource就会为null

请问这个现象是什么原因呢? 有什么比较好的解决办法?
预谢!

阅读 4.3k
1 个回答

如果注解是在方法上,可以得到,如果注解在类上则为null,把注解写到方法上。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题