带注释字段的java Spring AOP切入点表达式
是否可以捕获带有特定注释的任何字段?我的最终目标是向该字段中注入一个值,但目前我的切入点是错误的(不确定语法是否正确)
@Pointcut("execution(* *(..)) && @annotation(com.mycompany.MyAnnotation)")
private void annotatedField(){}
@Around("annotatedField()")
public Object injectValue(final ProceedingJoinPoint proceedingJoinPoint) throws Throwable {}
我相信切入点是用注释说明任何方法。我想把它改成任何领域
# 1 楼答案
我认为你应该遵循Sotirios Delimanolis的建议,尽可能地使用Spring车载方式。如果您仍然认为它们不够充分,并且绝对希望使用方面来实现您的想法,那么您可以使用AspectJ within Spring而不是Spring AOP,并利用
get()
和set()
等切入点的全部功能来拦截类成员(静态和非静态)上的读/写操作。例如:标记注释:
驱动程序应用程序:
应用程序读取(
toString()
)并写入(构造函数、主方法)所有字段,其中包括带注释的status
字段方面:
控制台日志: