You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Spring Boot REST服务默认响应格式改为XML?

我来帮你搞定这个问题!你遇到的情况很常见——虽然加了Jackson XML的依赖能支持XML响应,但Spring Boot默认的内容协商逻辑还是会优先返回JSON,除非客户端明确指定Accept头。下面给你两种靠谱的解决方案:

方法1:通过配置文件快速修改

直接在application.properties或者application.yml里添加配置,调整默认的响应媒体类型:

如果用properties文件:

# 设置无Accept头时的默认响应类型为XML
spring.mvc.contentnegotiation.default-content-type=application/xml
# 可选:开启后支持通过请求参数指定格式(比如?format=json)
spring.mvc.contentnegotiation.favor-parameter=true

如果用yml文件:

spring:
  mvc:
    contentnegotiation:
      default-content-type: application/xml
      favor-parameter: true # 可选,开启参数指定格式功能

配置完成后,当客户端不发送Accept头时,服务端就会默认返回XML格式的响应了。

方法2:通过Java配置自定义内容协商策略

如果需要更灵活的控制(比如自定义媒体类型优先级、扩展更多格式),可以实现WebMvcConfigurer接口,重写内容协商的配置逻辑:

import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
        configurer
                // 关闭路径扩展名自动匹配(比如xxx.json自动返回JSON,可选配置)
                .favorPathExtension(false)
                // 设置默认响应类型为XML
                .defaultContentType(MediaType.APPLICATION_XML)
                // 注册支持的媒体类型映射
                .mediaType("xml", MediaType.APPLICATION_XML)
                .mediaType("json", MediaType.APPLICATION_JSON);
    }
}

这个配置不仅明确了默认XML的规则,还清晰定义了支持的两种格式,扩展性更强。

验证效果

配置好后,用curl测试不带Accept头的请求:

curl http://localhost:8080/your-api-path

此时应该能看到XML格式的响应。如果临时需要JSON,只需加上Accept头即可:

curl -H "Accept: application/json" http://localhost:8080/your-api-path

最后再确认下你的jackson-dataformat-xml依赖是完整的,Maven依赖示例:

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
</dependency>

这样就能完美实现你要的默认XML响应需求啦!

内容的提问来源于stack exchange,提问作者kulatamicuda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:29:22