专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

SpringBoot项目中如何定制HTTP消息转换器_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/9 5:19:52       共计:3586 浏览

SpringBoot项目中如何定制HTTP消息转换器?

要想自己定制HTTP消息转换器必须先知道SpringBoot默认是怎么做HTTP消息转换的。

先来看我们平常工作中开发一个简单的get请求:

那么当前端请求我们的API的时候,我们是如何将网络传输的字节流序列化成我们想要的对象呢?做完业务处理后又是如何返回数据呢?

HttpMessageConverter

在SpringBoot框架下,可以使用@RequestBody和@ResponseBody两个注解,分别完成请求报文到对象和对象到响应报文的转换,底层这种灵活的消息转换机制,就是Spring3.x中新引入的HttpMessageConverter即消息转换器机制。

打开任何一个集成了Spring-web功能的SpringBoot项目,都可以找到这个HttpMessageConvert:

可以看到他是一个接口类,和他在一个包下面有很多实现类,感兴趣的同学可以debug跟进去把这块源码搞透,这个过程中大家还可以学习到很多关于序列化的知识。

源码解析:怎么知道SpringBoot中的默认convert

在项目的启动类Application.class上有一个@SpringBootApplication注解,点进去会看到他是一系列注解的包含,其中有一个@EnableAutoConfiguration注解,继续点进去查看:

发现引入了一个类:AutoConfigurationImportSelector类,继续跟进去有一个方法selectImports():

继续点击进入loadMetadata这个方法:

到这一步相信大家就清晰了他是怎么加载的了:

继续走下去就知道如何加载消息的默认convert,这里就不和大家说答案,希望大家自己可以跟进去看看,收获是不一样的~

定制自己的convert

知道了消息转换器的原理以及SpringBoot中如何加载的,我们就知道如何去定制自己的消息转换器了,先实现自己的一个convert,继承AbstractHttpMessageConverter:

然后定义一个WebConfig类继承WebMvcConfigurer,把我们自定义的这个convert加进去:

实际工作中,大家可能很多时候并不需要自己去实现convert,用默认的消息转换器就可以了,除非大家有自己特殊的需求考虑,否则不建议非得自己去实现这个convert。

以上就是关于SpringBoot中如何定制消息转换器的回答了,不足之处欢迎大家评论交流,共同学习。

我是【java架构设计】,如果我的回答对您有帮助,欢迎转发点赞,我将持续为您提供Java领域优质内容!

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:村级六位一体治理体系指的是什么_java | ·下一条:ide怎么部署项目_java

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有