共计 1040 个字符,预计需要花费 3 分钟才能阅读完成。
前言
服务端系统中,Spring默认帮助我们做了很多,除此之外,提供了很多扩展入口,请求参数解析也不例外。本文将展示扩展的Spring参数解析器,该解析器目前提供了参数名的格式自动转换,当请求参数命名格式不符合实际定义的参数名,能够自动的帮助我们解决,再也不用写参数名称绑定👋👋👋提升效率🤩🤩🤩
正文
对于Spring 5.x的应用,即Spring Boot 2.4+的版本
implementation("org.flmelody:spring-method-parameter-resolver:1.0.2-spring5")
对于Spring 6.x的应用,即Spring Boot 3.x的版本
implementation("org.flmelody:spring-method-parameter-resolver:1.0.1-spring6")
依赖导入后,我们只需要启用参数解析器,比如
@EnableWebResolver(paramNamingStrategy = NamingStrategy.SNAKE_CASE)
@SpringBootApplication
public class SpringBootExplorerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootExplorerApplication.class, args);
}
}
如果你直接继承
WebMvcConfigurationSupport
实现了自己的配置,参数解析器可能不会生效,常规的做法是继承DelegatingWebMvcConfiguration
来实现兼容
启用该行配置后,该参数解析器默认全局启用蛇形命名参数绑定,接下来,我们就可以使用@WebParam
参数注解了,替换之前使用的@RequestParam
@GetMapping(value = "/auto-converter")
public void useWebParam(@WebParam String userId) {
}
此时蛇形请求参数形如user_id
将会自动绑定到userId
。当然,如果你不想使用全局的解析器参数命名配置,可以直接指定当前的WebParam命名策略
扩展
目前该扩展包支持自定义扩展,你可以实现自己的参数解析器,参数命名转换器,实现基础扩展接口WebMethodArgumentResolver
NamingStrategyHandler
即可👌
正文完