>Java >java지도 시간 >Spring MVC의 @RequestBody를 사용하여 양방향 JSON-Java 직렬화를 활성화하는 방법은 무엇입니까?

Spring MVC의 @RequestBody를 사용하여 양방향 JSON-Java 직렬화를 활성화하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-21 04:58:10895검색

How to Enable Bidirectional JSON-Java Serialization with Spring MVC's @RequestBody?

Spring MVC RequestBody 및 JSON을 사용한 양방향 JSON-Java 직렬화

시나리오 및 문제점

Spring MVC를 사용하는 Java 기반 웹 애플리케이션에서 양방향 직렬화 JSON과 Java 객체 간의 데이터 직렬화가 추구됩니다. Java-JSON 경로는 잘 작동하지만 @RequestBody를 통해 JSON 입력을 Java 객체로 역직렬화하는 역방향 경로에서는 문제가 발생합니다.

해결책

양방향 JSON-Java 직렬화를 활성화하려면, Spring MVC 구성에 MappingJacksonHttpMessageConverter를 등록하는 것이 중요합니다. 이는 두 가지 방법으로 달성할 수 있습니다:

  1. XML 구성의 태그
  2. Java 기반 구성에서 @EnableWebMvc 주석 사용

메시지 변환기가 등록되면 문제 설명에 표시된 코드가 의도한 대로 작동해야 합니다.

작업 예제

작업 예제를 시연하기 위해 간단한 웹 애플리케이션이 제공됩니다. 아래:

  • Java: Java 소스에는 POST 엔드포인트(/test/math)가 있는 컨트롤러(TestController), 요청 개체(Request) 및 결과 개체가 포함됩니다. (결과):
// ... code

@Controller
@RequestMapping("/test")
public class TestController {

    @RequestMapping(method = RequestMethod.POST, value = "math")
    @ResponseBody
    public Result math(@RequestBody final Request request) {
        // ... code
    }

}

// ... code
  • 구성: /src/main/resources/mvc-context.xml 파일은 주석 기반 프로그래밍으로 Spring MVC를 설정합니다. 및 구성요소 검사:
<beans xmlns="http://www.springframework.org/schema/beans"...>
    <mvc:annotation-driven />
    <context:component-scan base-package="test.json" />
</beans>
  • 웹 애플리케이션: web.xml 파일은 Spring MVC 서블릿을 정의합니다.
<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 애플리케이션 테스트:

  1. POST: http://localhost:8080/test/math JSON 본문: {"left": 13, "right": 7}
  2. 응답은 산술 연산의 결과를 포함하는 JSON입니다(추가 , 뺄셈, 곱셈)을 요청에 제공된 숫자에 적용합니다.

위 내용은 Spring MVC의 @RequestBody를 사용하여 양방향 JSON-Java 직렬화를 활성화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.