您的位置:首页 > 健康 > 养生 > 创意广告牌设计图片大全_微信ios版下载_seo网站课程_腾讯广告投放推广平台价格

创意广告牌设计图片大全_微信ios版下载_seo网站课程_腾讯广告投放推广平台价格

2025/2/25 3:07:21 来源:https://blog.csdn.net/weixin_44088274/article/details/142953153  浏览:    关键词:创意广告牌设计图片大全_微信ios版下载_seo网站课程_腾讯广告投放推广平台价格
创意广告牌设计图片大全_微信ios版下载_seo网站课程_腾讯广告投放推广平台价格

Gitee仓库

https://gitee.com/Lin_DH/system

介绍

可扩展标记语言 (Extensible Markup Language, XML) ,标准通用标记语言的子集,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 可扩展性良好,内容与形式分离,遵循严格的语法要求,保值性良好等优点。
日常开发中,经常会用到Json格式和Xml格式的请求和响应处理,那xml格式的应该如何处理呢?

实现原理

在 SpringBoot 中处理Http请求的视线是采用 Spring MVC,而在Spring MVC 中有一个消息转换器的概念,它主要负责处理各种不同格式的请求数据进行处理,并转换成对象,以提供更好的编程体验。
在 Spring MVC 中定义了 HttpMessageConverter 接口,抽象了消息转换器对类型的判断、对读写的判断与操作。
Http 请求的 Content-Type 有各种不同格式定义,如果要支持 xml 格式的消息转换,就要使用对应的转换器。Spring MVC 中默认采用 Jackson 实现的转换器 MappingJackson2XmlHttpMessageConverter。

代码实现

第一步:引入 xml 消息转换器
在 Spring Boot 应用中,只需要引入 jackson-dataformat-xml 依赖,应用会自动引入 MappingJackson2XmlHttpMessageConverter 的实现。

pom.xml

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

在传统 Spring 应用中,通过配置加入对 xml 格式数据的消息转换实现

CustomMessageConverterConfig.java

@Configuration
public class CustomMessageConverterConfig extends WebMvcConfigurerAdapter {@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) {Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.xml();builder.indentOutput(true);converters.add(new MappingJackson2XmlHttpMessageConverter(builder.build()));}
}

第二步:定义对象与 xml 的关系

User.java

package com.lm.system.common;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;import java.util.Date;/*** @Author: DuHaoLin* @Date: 2024/7/26*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@JacksonXmlRootElement(localName = "User")
public class User {@TableId(value = "id", type = IdType.INPUT)@JacksonXmlProperty(localName = "id")private Integer id; //自增长@JacksonXmlProperty(localName = "name")private String name;@JacksonXmlProperty(localName = "age")private Integer age;@JacksonXmlProperty(localName = "gender")private String gender; //性别@JacksonXmlProperty(localName = "deleted")private Integer deleted; //是否已经删除:0否,1是@JacksonXmlProperty(localName = "createTime")private Date createTime;@JacksonXmlProperty(localName = "updateTime")private Date updateTime;}

第三步:编写 controller 类

UserController.java

package com.lm.system.controller;import com.lm.system.common.User;import com.lm.system.service.UserService;import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;import javax.annotation.Resource;
import java.util.List;/*** @Author: DuHaoLin* @Date: 2024/7/26*/
@RestController
@Api(tags = "用户接口")
@RequestMapping("user")
public class UserController {@Resourceprivate UserService userService;/*** 以xml的格式查询出用户数据*/@GetMapping(value = "xmlUsers", produces = MediaType.APPLICATION_XML_VALUE)public List<User> xmlUsers() {return userService.queryAllUser();}/*** 传入xml的格式id,查询出xml格式的用户数据*/@PostMapping(value = "queryXmlUserById", consumes = MediaType.APPLICATION_XML_VALUE, produces = MediaType.APPLICATION_XML_VALUE)public User queryXmlUserById(@RequestBody User user) {return userService.queryUserById(user.getId());}}

效果图
1.查询数据库中所有用户数据,以xml格式呈现。
在这里插入图片描述
2.用Post方式传xml格式的id,查询对应的xml格式的用户数据。
在这里插入图片描述

项目结构图

在这里插入图片描述

参考资料

Spring Boot 2.x基础教程:如何扩展XML格式的请求和响应【https://www.didispace.com/spring-boot-2/3-8-xml.html】

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com