自定义注释的拦截方面
Intercepting aspect for custom annotion
我正在写一个 library/sdk,它可以拦截任何用自定义注释 @Monitor
注释的方法。
代码有点像这样
@Monitor
public void methodA(String test)
拦截这个的方面有这个切入点表达式
@After("execution(@com.packageA.Monitor * *(..))")
public void intercept(final JoinPoint joinPoint){
...}
当我在与 methodA
相同的包中描述方面时,此代码工作正常。但是,如果我创建一个单独的库并定义方面,它无法拦截 methodA
。有帮助吗?
编辑
回应@Bond 的评论
@Component
@Target(value = {ElementType.METHOD, ElementType.TYPE})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface Monitor {
}
Spring 版本:
spring-上下文 - 4.1.7.Release
aspectj-1.6.5
问题的关键是不会在同一个项目中使用注释。编译后将一起用于不同的项目
编辑2
第二个项目,即这个方面应该拦截的项目是使用 aspectj maven 插件编译的
我正在写一个 library/sdk,它可以拦截任何用自定义注释 @Monitor
注释的方法。
代码有点像这样
@Monitor
public void methodA(String test)
拦截这个的方面有这个切入点表达式
@After("execution(@com.packageA.Monitor * *(..))")
public void intercept(final JoinPoint joinPoint){
...}
当我在与 methodA
相同的包中描述方面时,此代码工作正常。但是,如果我创建一个单独的库并定义方面,它无法拦截 methodA
。有帮助吗?
编辑
回应@Bond 的评论
@Component
@Target(value = {ElementType.METHOD, ElementType.TYPE})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface Monitor {
}
Spring 版本: spring-上下文 - 4.1.7.Release aspectj-1.6.5 问题的关键是不会在同一个项目中使用注释。编译后将一起用于不同的项目
编辑2
第二个项目,即这个方面应该拦截的项目是使用 aspectj maven 插件编译的