开发者学堂课程【SpringBoot 实战教程:自定义消息转换器】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/651/detail/10789
自定义消息转换器
内容介绍:
一、定义
二、案例
一、定义
在使用 springmac 时可以在 springmac 的配置文件中配置消息转换器。但是在 springboot 中已经取消了 xml 的配置文件,那么消息转换器该怎么定义呢?只需要在类中添加消息转化器的 @Bean,就会被 SpringBoot 自动加入到容器中。
二、案例
1、首先找到一个 controller,在里面定义消息转换器,创建一个消息转换器对象,指定编码是 UTF-8,把消息转换器返回,注意要在上面加上 Bean 注解,加上注解,springboot 才会把它放入 springmac 容器中。这个 controller 有一个功能,返回的字符串包含中文,如果消息转换器正常使用,中文不会乱码。
@Bean
public StringHttpMessageConverter stringHttpMes sageConverter() {
StringHttpMes sageConverter converter=new
StringHttpMes sageConverter (charset. forName ("UTF-8")) ;
return converter;
}
@RequestMapping("/tt")
@ResponseBody
public String tests ( )
{
Retrun”hello,你好”;
}
}
2、启动程序,访问路径是 tt。没有乱码。消息转换器没有问题。
3、如果换成别的编码,那么就会变成乱码。
4、如果自己不定义消息转换器,把之前的代码注释,访问没有乱码,springboot默认配置消息转换器。
5、找到和 web 相关的自动配置,这是消息转换器的自动配置HttpMessageConvertersAutoConfiguration.class,返回的就是消息转换器。StringHttpMessageConverter,stringHttpMessageConverter,默认情况下消息转换器不需要自己定义,因为 springboot 默认自己配置。


