Spring Boot 默认不自动支持 XML,需添加 jackson-dataformat-xml 依赖并配置 consumes/produces 为 application/xml;实体类需符合规范,如无参构造、getter/setter,推荐使用 @JacksonXmlRootElement;常见问题包括字段名大小写敏感、集合包装控制及 406 错误排查。

Spring Boot 默认支持 XML 请求和响应,但需要手动配置依赖和启用相关支持。核心是添加 Jackson 的 XML 支持(jackson-dataformat-xml),并确保控制器方法正确声明 consumes 和 produces 类型为 application/xml。
在 pom.xml 中引入 Jackson XML 数据格式模块:
jackson-dataformat-xml
spring-boot-starter-web 的默认 JSON 依赖冲突(无需额外排除)<dependency><br> <groupId>com.fasterxml.jackson.dataformat</groupId><br> <artifactId>jackson-dataformat-xml</artifactId><br></dependency>
Spring Boot 会自动注册 Jackson2ObjectMapperBuilder 对应的 MappingJackson2XmlHttpMessageConverter,前提是类路径下存在 XmlMapper。你不需要手动配置,但可微调:
@JacksonXmlRootElement 标记根元素(可选,但推荐)XmlMapper BeanController 方法需明确指定媒体类型,并使用 @RequestBody / @ResponseBody 或 @RestController:
@PostMapping(value = "/user", <br> consumes = MediaType.APPLICATION_XML_VALUE,<br> produces = MediaType.APPLICATION_XML_VALUE)<br>public User createUser(@RequestBody User user) {<br> return userService.save(user);<br>}consumes 告诉 Spring 只接受 Content-Type: application/xml 的请求produces 表示响应头设为 application/xml,并用 XML 转换器序列化返回值<user><name>Alice</name><age>30</age></user>
XML 支持看似简单,但几个细节容易出错:
@JacksonXmlProperty(localName = "user_name") 自定义@JacksonXmlElementWrapper(useWrapping = false) 控制是否包裹外层标签Accept 是否为 application/xml,或服务端未启用 XML 转换器基本上就这些。只要依赖到位、注解写对、实体规范,Spring Boot 处理 XML 就很顺滑。
以上就是Spring Boot怎么处理XML请求 Spring Boot接收和返回XML数据教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号