
Spring MVC RequestBody 및 JSON을 사용한 양방향 JSON-Java 직렬화
시나리오 및 문제점
Spring MVC를 사용하는 Java 기반 웹 애플리케이션에서 양방향 직렬화 JSON과 Java 객체 간의 데이터 직렬화가 추구됩니다. Java-JSON 경로는 잘 작동하지만 @RequestBody를 통해 JSON 입력을 Java 객체로 역직렬화하는 역방향 경로에서는 문제가 발생합니다.
해결책
양방향 JSON-Java 직렬화를 활성화하려면, Spring MVC 구성에 MappingJacksonHttpMessageConverter를 등록하는 것이 중요합니다. 이는 두 가지 방법으로 달성할 수 있습니다:
- XML 구성의 태그
- Java 기반 구성에서 @EnableWebMvc 주석 사용
메시지 변환기가 등록되면 문제 설명에 표시된 코드가 의도한 대로 작동해야 합니다.
작업 예제
작업 예제를 시연하기 위해 간단한 웹 애플리케이션이 제공됩니다. 아래:
-
Java: Java 소스에는 POST 엔드포인트(/test/math)가 있는 컨트롤러(TestController), 요청 개체(Request) 및 결과 개체가 포함됩니다. (결과):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | @Controller
@RequestMapping( "/test" )
public class TestController {
@RequestMapping(method = RequestMethod.POST, value = "math" )
@ResponseBody
public Result math(@RequestBody final Request request) {
}
}
|
로그인 후 복사
-
구성: /src/main/resources/mvc-context.xml 파일은 주석 기반 프로그래밍으로 Spring MVC를 설정합니다. 및 구성요소 검사:
1 2 3 4 | <beans xmlns= "http://www.springframework.org/schema/beans" ...>
<mvc:annotation-driven />
<context:component-scan base-package= "test.json" />
</beans>
|
로그인 후 복사
-
웹 애플리케이션: web.xml 파일은 Spring MVC 서블릿을 정의합니다.
1 2 3 4 5 6 7 8 9 10 11 | <web-app xmlns= "http://java.sun.com/xml/ns/j2ee" ...>
<servlet>
<servlet-name>json</servlet-name>
<servlet- class >org.springframework.web.servlet.DispatcherServlet</servlet- class >
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>json</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
|
로그인 후 복사
To 애플리케이션 테스트:
- POST: http://localhost:8080/test/math JSON 본문: {"left": 13, "right": 7}
- 응답은 산술 연산의 결과를 포함하는 JSON입니다(추가 , 뺄셈, 곱셈)을 요청에 제공된 숫자에 적용합니다.
위 내용은 Spring MVC의 @RequestBody를 사용하여 양방향 JSON-Java 직렬화를 활성화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!