1.实体类
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD) // 指示JAXB直接访问类的字段而不是getter/setter方法
public class User {@XmlElement // 表示这个字段应该被映射为XML的一个元素private String name;@XmlElement // 表示这个字段应该被映射为XML的一个元素private int age;// 构造方法、getter和setter省略public User() {}public User(String name, int age) {this.name = name;this.age = age;}// Getter 和 Setterpublic String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}
2.接口
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;@RestController
public class UserController {//consumes 将接收到的xml数据自动转为user对象,produces 将返回user对象自动转为xml数据返回@PostMapping(value = "/user", consumes = MediaType.APPLICATION_XML_VALUE, produces = MediaType.APPLICATION_XML_VALUE)public User createUser(@RequestBody User user) {// 在这里可以添加处理逻辑,例如保存到数据库// 这里只是简单返回接收到的用户对象user.setAge(102);return user;}
}
3.测试
设置Content-Type
设置raw 为xml