注释
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String value();
}
AOP
@Aspect
@Component
public class MyAspect {
@Around("@annotation(MyAnnotation)")
public Object aroundHandler(ProceedingJoinPoint joinPoint) throws Throwable {
...
}
控制器
@Controller
public class MyController {
@RequestMapping(value="/hello", method=RequestMethod.GET)
@ResponseBody
@MyAnnotation(value="hello")
public String hello() {
return "hello";
}
}
在上述情况下,我的aop无法正常工作...
它可以与其他方法配合使用,@Controller
不会对其进行注释。
它可以与aop表达式和控制器方法配合使用。
是否可以通过控制器方法通过注释使用aop?
答案 0 :(得分:0)
尝试一下:
@Around("@annotation(myAnnotation)")
public Object aroundHandler(ProceedingJoinPoint joinPoint,MyAnnotation myAnnotation) throws Throwable {
// Do Something
}
答案 1 :(得分:0)
我认为您需要使用@within ...此博客文章可能会帮助https://www.productiveprogrammer.net/?p=49