当前位置: 首页 > 知识库问答 >
问题:

为什么我们需要在Spring中指定HttpMessageConverter?

白光耀
2023-03-14
@Autowired
private MappingJackson2HttpMessageConverter jsonConverter;

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    converters.addAll(Collections.singletonList(jsonConverter));
}

我阅读了一些文章,发现:默认情况下,预启用了以下HttpMessageConverters实例:

ByteArrayHttpMessageConverter-转换字节数组
StringHttpMessageConverter-转换字符串
ResourceHttpMessageConverter-转换org.springframework.core.io.resource用于任何类型的八位组流
SourceHttpMessageConverter-转换javax.XML.transform.Source FormHttpMessageConverter-转换javax.XML.transform.
Jaxb2RootElementHttpMessageConverter-将表单数据转换TER-转换JSON(仅当类路径上有Jackson2时添加)
MappingJacksonHttpMessageConverter-转换JSON(仅当类路径上有Jackson时添加)
AtomFeedHttpMessageConverter-转换Atom提要(仅当类路径上有Rome时添加)
RssChannelHttpMessageConverter-转换RSS提要(仅当类路径上有Rome时添加)
RssChannelHttpMessageConverter-转换罗马在类路径上)

我删除了代码,一切都开始正常工作。所以有谁知道为什么要这么做,我的意思是为什么要写代码?因为正如我所看到的,一切都是开箱即用的,代码毫无用处。所以问题是:

为什么我们需要在Spring中指定HttpMessageConverter?

共有1个答案

裘丰
2023-03-14

MappingJackson2HttpMessageConverter是在3.1.2中添加的,在该版本中可能还没有自动发现它。

代码可能是为旧版本编写的,随着库的升级而变得过时。它也可能是由不知道它在新版本中是自动的人编写的(如果您从web上随机复制粘贴代码,您不知道最终会创建什么样的怪物)。

您不需要配置其他转换器,除非您正在执行某些默认情况下尚未配置的特定操作。如果你不做任何异国情调的事情,这在现在应该是相当罕见的。

 类似资料:
  • 问题内容: 我将稍微解释一下我的脚本,以便您可以理解我的问题。 基本上我做了一个脚本来检查SOCKS5是还是。 当我在上面测试我的脚本时,它运行良好,但是当我在Windows上对其进行测试时,直到我将以下行添加到: 谁能向我解释为什么我在Windows中需要此行,而在Linux服务器上却不需要? 问题答案: SSL证书上的此cURL手册页介绍了连接到SSL / TLS受保护主机时 证书验证 的过程

  • 问题内容: Angular应用使用属性而不是事件。 为什么是这样? 问题答案: ng-click包含一个角度表达式。Angular表达式是在Angular 范围的上下文中求值的,该范围绑定到具有ng- click属性的元素或该元素的祖先。 Angular表达式语言不包含流控制语句,也不能声明变量或定义函数。这些限制意味着模板只能访问由控制器或指令提供的变量和运行功能。

  • 以我的拙见,关于“什么是单子”这个著名问题的答案,尤其是投票最多的答案,试图解释什么是单子,而没有明确解释为什么单子是真正必要的。它们能被解释为一个问题的解决方案吗?

  • 为什么我们需要字典? 计算机最适合使用数字,而人类最适合使用姓名。我们创建了DNS以便记住主机名而不是IP地址。字典以相同的方式使用,因此我们可以记住AVP名称而不是类型编号。当FreeRADIUS解析请求或生成响应时,会查阅字典。 但是,字典与DNS不同,因为RADIUS客户端不知道FreeRADIUS使用的这些“友好”名称。永远不会在RADIUS客户端和RADIUS服务器之间交换AVP名称。

  • 问题内容: 我是Hadoop / ZooKeeper的新手。我不明白将ZooKeeper与Hadoop结合使用的目的,ZooKeeper是否在Hadoop中写入数据?如果不是,那么为什么我们将ZooKeeper与Hadoop一起使用? 问题答案: Hadoop 1.x不使用Zookeeper。即使在Hadoop 1.x安装中,HBase也会使用zookeeper。 Hadoop从2.0版开始也采用

  • 问题内容: 我不知道为什么我们需要在报表。我认为,此代码块 使用以下命令与此相同: 我想念什么吗? 问题答案: 如果您提早返回,将会有所不同: 比较一下: 可能导致差异的其他情况: 如果在except块内引发异常。 如果引发异常,但不是。 其他控制流语句,例如和语句。