Spring Boot对 Json 的支持
package wen.demo07232.domain;
public class User {
private String name;
private int age;
private String pass;
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;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
}
import wen.demo07232.domain.User;
@RestController
public class WebController {
@RequestMapping("/getUser")
public User getUser() {
User user = new User();
user.setName("测试姓名");
user.setAge(21);
user.setPass("173");
return user;
}
}
import org.junit.Before;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import wen.demo07232.web.WebController;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
@SpringBootTest
public class WebControllerTest {
private MockMvc mockMvc;
@Test
public void getUser() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.post("/getUser")).andDo(print());
}
}
如图所示的返回方法,说明Spring Boot自动将User对象转成了Json进行了返回
在WebController.java内部增加:
@RequestMapping("/getUsers")
public List<User> getUsers() {
List<User> users = new ArrayList<>();
User user1 = new User();
user1.setName("Stephanie");
user1.setAge(21);
user1.setPass("Stephanie173100");
users.add(user1);
User user2 = new User();
user2.setName("Track");
user2.setAge(23);
user2.setPass("Track181110");
users.add(user2);
return users;
}
WebControllerTest.java中增加:
@Test
public void getUsers() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.post("/getUsers")).andDo(print());
}
测试成功!说明不管是对象还是集合或者对象嵌套,Spring Boot 均可以将其转化为 Json 字符串,特别适合我们给其他系统提供接口时使用
使用Spring Boot 可以对请求作出一些限制,比如为了安全只允许POST请求的访问,只需要在方法上添加一个配置即可:
经过调试,发现其实把name改成value一样能调试成功:
这时候再以 get 请求去访问,就会返回: Request method ‘GET’ not supported
@RequestMapping(name="/getUser", method= RequestMethod.POST)
public String getUser(User user) {
...
}
@RequestMapping(value = "get/{name}", method = RequestMethod.GET)
public User get(@PathVariable String name) {
User user = new User();
user.setName(name);
return user;
}
开启main – java – Application 打开浏览器访问http://localhost:8080/get/Stephanie
下一章:Spring Boot 参数校验、自定义Filter、自定义Property