下面是详细讲解“SpringMVC JSON数据交互及RESTful支持实现方法”的完整攻略。
SpringMVC JSON数据交互及RESTful支持实现方法
什么是JSON
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于 JavaScript 的一个子集。JSON采用完全独立于语言的文本格式,因此可以读取和发送给任何支持JSON的程序。
SpringMVC中使用JSON实现数据交互
SpringMVC通过Jackson(或其他json工具库)来支持JSON数据交互。下面是SpringMVC中使用JSON实现数据交互的步骤:
1. 引入依赖
在 pom.xml 中引入以下依赖:
<!--Jackson的依赖-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.6</version>
</dependency>
2. 配置SpringMVC
在 SpringMVC 的配置文件中添加以下配置:
<!--配置消息转换器-->
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<!--配置json转换器-->
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>
3. 控制器实现
在控制器中,使用 @ResponseBody
注解将返回值转换成JSON格式进行返回。例如:
@RequestMapping(value = "/getStudent", method = RequestMethod.GET)
@ResponseBody
public Student getStudent() {
Student student = new Student();
student.setName("Tom");
student.setAge(18);
return student;
}
4. 测试数据是否返回JSON格式
启动应用程序,并在浏览器中访问 getStudent 接口(http://localhost:8080/getStudent),可以看到返回的是如下JSON格式的数据:
{
"name": "Tom",
"age": 18
}
SpringMVC中使用RESTful支持实现方法
1. 引入依赖
除了上述依赖外,需要在 pom.xml 中引入以下依赖:
<!--SpringMVC的test依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework.version}</version>
<scope>test</scope>
</dependency>
<!--SpringMVC的RESTful支持-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<!--SpringMVC的RESTful支持-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
2. 添加控制器类
在控制器类中,使用 @RestController
注解,表示该控制器将响应 RESTful 风格的请求。
例如:
@RestController
@RequestMapping("/user")
public class UserController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home() {
return "Hello user!";
}
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public String show(@PathVariable String id) {
return "This is user " + id;
}
}
3. 运行测试
在测试类中,使用 SpringMVC 的 MockMvc 类来模拟 RESTful 风格的请求,代码如下:
@RunWith(SpringRunner.class)
@WebMvcTest(UserController.class)
public class UserControllerTests {
@Autowired
private MockMvc mockMvc;
@Test
public void testHome() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/user/"))
.andExpect(status().isOk())
.andExpect(content().string("Hello user!"));
}
@Test
public void testShow() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/user/{id}", "123"))
.andExpect(status().isOk())
.andExpect(content().string("This is user 123"));
}
}
虽然以上测试只是针对 url 和返回字符串的测试,但使用 SpringMVC + RESTful 的方式的好处在于方便进行单元测试和后续的扩展。
至此,通过以上示例,我们讲解了“SpringMVC JSON数据交互及RESTful支持实现方法”这个主题。希望对您有所启发。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringMVC JSON数据交互及RESTful支持实现方法 - Python技术站