Spring Boot返回xml格式
目前流行的接口形式,数据类型基本都是json格式,很少使用xml格式进行数据传输。
在网站seo时,常常会用到sitemap,常用的形式就是xml格式。
如下简单说明:
1. 在xml返回的实体类前加@XmlRootElement
注解。
@XmlRootElement
public class Urlset {
private List<Url> url = new ArrayList<>();
@XmlRootElement
public static class Url {
private String loc;
private String lastmod;
private String changefreq;
private String priority;
...
}
}
如果实体类中包含其他实体类,则需要在子类的前面也添加
@XmlRootElement
注解。
2. 在请求的注释中添加 produces = {"application/xml;charset=UTF-8"}
。
@RequestMapping(value = "/sitemap.xml", produces = {"application/xml;charset=UTF-8"}, method = RequestMethod.GET)
private Urlset getSitemapXml() {
Urlset urlset = new Urlset();
Url url = new Url();
url.setLoc("");
url.setLastmod("");
url.setChangefreq("");
url.setPriority("");
urlset.getUrl().add(url);
...
}
请求返回结果如:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<urlset>
<url>
<changefreq>daily</changefreq>
<lastmod>2018-07-16</lastmod>
<loc>https://blog.mylitboy.com/article/Hadoop-MapReduce-introduction-and-simple-use</loc>
<priority>0.8</priority>
</url>
<url>
<changefreq>daily</changefreq>
<lastmod>2018-07-16</lastmod>
<loc>https://blog.mylitboy.com/article/Hadoop-HDFS-introduction-and-simple-use</loc>
<priority>0.8</priority>
</url>
</urlset>