Java SpringAOP方面不截取带注释的方法
我想在我的函数中使用Java SpringAOP方面不截取带注释的方法,java,aspectj,spring-aop,Java,Aspectj,Spring Aop,我想在我的函数中使用
、
和@posterhrowing
。
如果其他函数使用注释,如@MyAspectTest
,则应在相关时间运行beforeAction()
、afterAction()
和afterExcept()
。
但是,它似乎不起作用
我已经输入了依赖项并修改了bean
package com.service.metrics;
导入com.mgr.CMPMgr;
导入org.aspectj.lang.JoinPoint;
导入org.aspectj.lang.annotation.After;
导入org.aspectj.lang.annotation.Aspect;
导入org.aspectj.lang.annotation.Before;
导入org.aspectj.lang.annotation.afterhrowing;
导入java.lang.reflect.Method;
@面貌
公共类cmp谱{
@之前(value=“@annotation(com.mgr.CMPMgr)”)
public void beforeAction(JoinPoint JoinPoint)引发ClassNotFoundException{
测试代码
}
@之后(value=“@annotation(com.mgr.CMPMgr)”)
公共无效事后行动(){
测试代码
}
@后置(value=“@annotation(com.mgr.CMPMgr)”)
除(){
测试代码
}
}
package.com.mgr;
公共@接口CMPMgr{
字符串名()默认为“”;
long startTime=System.currentTimeMillis();
}
@CMPMgr(name=“vipGet”)
@得到
@产生({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
@路径(“/{lbId}”)
公共响应获取(@PathParam(“lbId”)字符串lbId,
@HeaderParam(“授权”)字符串基本数据,
@HeaderParam(“用户ID”)字符串(代表){
org.aspectj
aspectjrt
1.8.0
org.aspectj
aspectjweaver
1.8.0
它应该进入方面功能。但我发现它在调试模式下无法工作。为什么?我想到了一些事情:
- 您的批注需要运行时保留,但我在代码中没有看到
@retention(RetentionPolicy.runtime)
- 您的方面应该是一个
,但我也没有看到相应的注释@组件
- 包含方法
的目标类也必须是Spring bean/组件。因为您只显示不连贯的片段,而不是完整的类定义,我不知道该类驻留在哪个包中,如果它是Spring组件,以及是否通过组件扫描获取public Response get(..)
- 您的批注需要运行时保留,但我在代码中没有看到
@retention(RetentionPolicy.runtime)
- 您的方面应该是一个
,但我也没有看到相应的注释@组件
- 包含方法
的目标类也必须是Spring bean/组件。因为您只显示不连贯的片段,而不是完整的类定义,我不知道该类驻留在哪个包中,如果它是Spring组件,以及是否通过组件扫描获取public Response get(..)
- 我想到了一些事情: