使用Spring AOP实现自定义注解时,关键在于切入点PointCut表达式的书写,即通过表达式扫描指定的注解。
以下给出两种写法,这两种写法都可以扫描指定包下的注解。
1、
| 12
 3
 4
 5
 6
 7
 8
 
 | 
 
 @Target(ElementType.METHOD)
 @Retention(RetentionPolicy.RUNTIME)
 public @interface ExceptionMessageHandler {
 
 }
 
 | 
| 12
 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