🎉🎉《Spring Boot实战案例合集》目前已更新175个案例,我们将持续不断的更新。文末有电子书目录。
💪💪永久更新承诺
我们郑重承诺,所有订阅合集的粉丝都将享受永久免费的后续更新服务。
💌💌如何获取
订阅我们的合集《点我订阅》,并通过私信联系我们,我们将第一时间将电子书发送给您。
环境:SpringBoot3.4.2
1. 简介
在Spring Boot应用中,API响应格式的统一是保障前后端协作效率的关键。然而,传统硬编码方式缺乏灵活性,难以满足多场景需求。
为此,我们设计了“可插拔、可配置、可扩展”的统一响应增强组件。通过@EnableUnifyResponse 实现功能开关与参数配置,支持排除路径与注解,兼容响应式编程,提供自定义包装处理器,做到零侵入、高内聚、易扩展,全面提升接口返回的规范性与可维护性。
如下完整的代码示例:
@SpringBootApplication@EnableUnifyResponse(enable = "${pack.app.unify.enabled}",wrapperSimpleType = true,wrapperClass = R.class,excludeAnnotations = {NoWrapper.class},excludePackages = {"com.pack.unify.book"},wrapperHandler = PackWrapperHandler.class)public class App {}
接下来,我们将详细的实现此功能。
2.1 定义@Enable注解
@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(UnifyResponseConfiguration.class)public @interface EnableUnifyResponse {/**是否开启此功能;支持${...}表达式*/String enable() default "true" ;/**是否包装简单类型;如:int,string等*/boolean wrapperSimpleType() default true ;/**用于保证的类*/Class<?> wrapperClass() default Class.class ;/**对结果包装的处理器句柄;使用者自定义实现即可*/Class<? extends WrapperHandler> wrapperHandler() default WrapperHandler.class ;/**是否启用排除路径匹配*/String[] excludePackages() default {};/**是否跳过标记了特定注解的方法*/Class<? extends Annotation>[] excludeAnnotations() default {};}
该注解的核心作用是开启统一响应体功能,通过自动引入配置类,实现对控制器返回结果的自动包装,从而保证API接口返回数据格式的一致性,提升前后端交互的规范性和可维护性。


