在前面的文章中(如何优雅的实现 Spring Boot 接口参数加密解密?),松哥已经和大家介绍过如何对请求/响应数据进行预处理/二次处理,当时我们使用了 ResponseBodyAdvice 和 RequestBodyAdvice。其中 ResponseBodyAdvice 可以实现对响应数据的二次处理,可以在这里对响应数据进行加密/包装等等操作。
示例仍然以不同token响应不同视图为例,维系token与jsonview视图规则的映射绑定同示例二 1、编写ResponseBodyAdvice @RestControllerAdvice@Slf4jpublicclassJsonViewReponseBodyAdviceimplementsResponseBodyAdvice<Object>, ApplicationContextAware {privatefinalObjectMapper objectMapper;privatefinalJsonViewProperty jsonViewProperty;...
新建config的包,创建SwaggerConifg的配置类: //通过@Configuration注解,让Spring来加载该类配置 @Configuration //通过@EnableSwagger2注解来启用Swagger2 @EnableSwagger2 //@ConditionalOnExpression 为Spring的注解,用户是否实例化本类,用于是否启用Swagger的判断(生产环境需要屏蔽Swagger) @ConditionalOnExpression("${swa...
supportsReturnType 方法就按照 RequestResponseBodyMethodProcessor 的要求来,在 handleReturnValue 方法中,我们先对返回值进行一个预处理,然后调用 RequestResponseBodyMethodProcessor#handleReturnValue 方法继续输出 JSON 即可。
所幸Spring Boot已经为我们提供了更好的解决办法,只需要在项目中加上以下代码,就可以无感知的为我们统一全局返回值。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 /** * 全局返回值统一封装 */@EnableWebMvc @ConfigurationpublicclassGlobalReturnConfig{@RestControllerAdvicestaticclassResultResponseAdviceimplem...
@SpringBootApplication public class Demo123Application { public static void main(String[] args) { SpringApplication.run(Demo123Application.class, args); } } 1. 2. 3. 4. 5. 6. 7. 8. @SpringBootApplicaiton。 其次,任意打开一个SpringBoot项目,不难发现他的启动类(使用@SpringBootApplication注解的...
1、编写ResponseBodyAdvice @RestControllerAdvice @Slf4j public class JsonViewReponseBodyAdvice implements ResponseBodyAdvice<Object>, ApplicationContextAware { private final ObjectMapper objectMapper; private final JsonViewProperty jsonViewProperty; private ApplicationContext applicationContext; public JsonViewReponse...
package com.example.common.response;/** * 统一状态码接口 */publicinterfaceIResultCode{/** * @return 状态码 */IntegergetCode();/** * @return 返回消息 */StringgetMessage(); } 创建通用状态枚举# packagecom.example.common.response;importlombok.Getter;/** ...
今天又要给大家介绍一个 Spring Boot 中的组件--HandlerMethodReturnValueHandler。 在前面的文章中(如何优雅的实现 Spring Boot 接口参数加密解密?),松哥已经和大家介绍过如何对请求/响应数据进行预处理/二次处理,当时我们使用了 ResponseBodyAdvice 和 RequestBodyAdvice。其中 ResponseBodyAdvice 可以实现对响应数据的二...