错误处理
- 异常处理 @ControllerAdvice
AOP方式运行,捕获controller中抛出的异常,如果返回void(但是实用了ResponseStatus),可能会继续转到errorController处理。
常用的异常有:
BadRequestException,NotFoundException,ServerRejectException, SystemException
- 自定义ErrorController
系统统一错误页面,会接管系统所有的错误显示。 - 带ResponseStatus的Exception
运行方式不明,待检验。
获取Annotation标签
AnnotationUtils.findAnnotation(ex.getClass(), ResponseStatus.class) 如果exception有ResponseStatus申明(没见过!!),则抛出该异常,由默认的异常处理器处理?
findAnnotation能找到方法的申明吗?如spring task的schedule申明?
可以用以下方法
Method method = ClassUtils.getMethod(AnnotationUtilsTest.class, "test");
Set<Length> set = AnnotationUtils.getRepeatableAnnotation(method, Length.List.class, Length.class);
AnnotationUtils.getRepeatableAnnotation(ClassUtils.getMethod(TimeTest.class, "test"), Schedules.class, Scheduled.class)
获取所有的service bean
Map<String, Object> beans = ctx.getBeansWithAnnotation(org.springframework.stereotype.Service.class);
另外提供了一个AnnotatedElementUtils用于简化java.lang.reflect.AnnotatedElement的操作。
TODO
《JavaEE开发的颠覆者: Spring Boot实战》 比较全的springboot介绍,一定要下载。