切面逻辑:是否抛出异常 @Aspect @Component public class xxxxAspect { /** * 处理请求前执行 */ @Before(value = "@annotation(com.xxx.annotation.注解名)") public void boBefore(){ abc(); } protected void abc(){ throw new abcdefgException(); } }
/** * 自定义注解 * @author along * */ // 注解放置的目标位置,PARAMETER: 可用在参数上 METHOD:可用在方法级别上 @Target({ ElementType.PARAMETER, ElementType.METHOD }) // 指明修饰的注解的生存周期 RUNTIME:运行级别保留 @Retention(RetentionPolicy.RUNTIME) @Documented public @interface 注解名 { }
/** * 自定义异常 */ public class abcdefgException extends RuntimeException{ }
自定义返回错误码或http状态 @ControllerAdvice public class xxxxxxExceptionHandler { @ExceptionHandler(abcdefgException.class) @ResponseBody public void exception(HttpServletResponse response) { } }