@ControllerAdvice
public class ResponseDataHandler implements ResponseBodyAdvice {
@Override
public boolean supports(MethodParameter returnType, Class converterType) {
return true;
}
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
if (returnType.hasMethodAnnotation(ExceptionHandler.class)) {
//处理异常,可以再添加一个异常处理的类,用于处理异常返回格式
return body;
} else {
return new ResponseBodyDTO(body);
}
}
}
让springboot装配这个拦截器
@Configuration
public class WebConfig implements WebMvcConfigurer{
@Bean
public HttpMessageConverters useConverters() {
return new HttpMessageConverters(new FastJsonHttpMessageConverter());
}
}
相关推荐
创建一个切面类,它会在方法执行后捕获结果,并根据`@CustomResponse`中的元信息来构造规范化的返回数据结构: ```java @Aspect @Component public class CustomResponseAspect { @AfterReturning("@annotation...
- Spring Boot还自动配置了错误处理、日期和时间格式化、MVC拦截器、HTTP缓存等多种功能,以提供全面的Web应用支持。 通过以上配置,Spring Boot极大地简化了Web应用的开发过程,使得开发者能够更专注于业务逻辑,...
- dubbo_b_demo:这可能是一个服务提供者(Provider)的示例,展示了如何在SpringBoot项目中配置并暴露Dubbo服务。 - tyhd_dubbo_api:这可能是项目中的服务接口定义,包含服务的输入输出参数、返回值等信息。 - ...
- 使用`<mvc:interceptors>`配置拦截器,并指定拦截规则。 **问题十四:怎样在方法里面得到Request,或者Session?** - 使用`@RequestParam`注解获取请求参数。 - 使用`@SessionAttributes`注解管理会话属性。 **...
接下来,要记录接口访问日志,可以通过AOP的方式在方法调用前后进行拦截,并记录传入参数和返回值等信息。AOP通过定义切点(Pointcut)和通知(Advice)来实现这一点。切点定义了哪些方法被拦截,而通知则定义了在切点处...
- **Interceptor**:拦截器,可以实现预处理和后处理,例如权限校验、日志记录。 4. **数据绑定与验证** - **@RequestParam**:将请求参数绑定到Controller方法参数。 - **@ModelAttribute**:用于将模型数据与...