我正在使用 Spring AOP,我希望能够定义一个切入点,只要调用包内的方法(其名称在属性文件中定义),就会触发该切入点。也就是说,我的切入点看起来像
@Pointcut("within(${base.packageName}.*)")
public void MyPointCut() {}
然后如果我的配置文件有
base.packageName=foo.bar
然后在运行时切入点的行为就像这样
@Pointcut("within(foo.bar.*)")
public void MyPointCut() {}
我尝试了几种不同的方法(例如,在切入点表达式中使用 SpEL,配置一个实现静态切入点接口(interface)的类)但没有任何效果。
在 spring 中有什么方法可以根据在配置文件中找到的值来定义切入点?
最佳答案
这是不可能的,因为注释值必须是编译时常量表达式。因此,您的切入点无法解析 ${}
占位符,因为占位符解析发生在运行时。查看更多here .
关于java - Spring AOP - 基于属性文件值的切入点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47735761/