使用Spring AOP实现自定义注解时,关键在于切入点PointCut表达式的书写,即通过表达式扫描指定的注解。
以下给出两种写法,这两种写法都可以扫描指定包下的注解。
1、
1 2 3 4 5 6 7 8
|
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface ExceptionMessageHandler {
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| @Aspect @Component public class ExceptionAnnotationAspect { private static final Logger LOG =Logger.getLogger(ExceptionAnnotationAspect.class);
@Around("execution(@com.fish.webcore.annotation.ExceptionMessageHandler * com.fish.webcore..*.*(..))") public Object exceptionHandler(ProceedingJoinPoint proceedingJoinPoint) throws Throwable { try { return proceedingJoinPoint.proceed(); } catch (Exception e) { LOG.error("服务器内部错误!", e); return JacksonUtil.getExceptionResult(e, "服务器内部错误!"); } }
}
|
Read More