1.实体类
java
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 和 Setter
public 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.接口
java
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