java - Spring AOP - 基于属性文件值的切入点

标签 java spring spring-aop

我正在使用 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/

相关文章:

java - 如何使用 geckodriver 检索 Firefox 的崩溃数据(Java 中)

java - 是否可以在构造函数上使用@Resource?

java - 在Hibernate拦截器的afterTransactionBegin方法中执行查询

java - Spring MVC - 如何获取@RequestMethod方法参数列表(可能通过@RequestParam属性)

java - Spring Tool Suite:“属性”中的“部署程序集”选项

java - 我借用了一种捕获 10 种异常但不对它们执行任何操作的方法。我可以用(异常(exception) e)替换它们吗

java - 查找分隔符并忽略引号内的分隔符

ajax - 如何将参数传递给 Thymeleaf Ajax 片段

java - 所有 Spring beans 都是代理的吗?

spring - 关于Spring 3框架的一堆问题