@RequestBody와 ObjectMapper와의 차이를 질문하고 싶습니다.
737
작성한 질문수 2
안녕하세요 강의를 듣고 개발을 시작한 개발자입니다
개발 중에 맞딱뜨린 상황이 궁금하여 질문을 남기고자 합니다.
1. @RequestBody 를 통하여 컨트롤 메소드 파라미터로 전달받음
>> @RequestBody ClassName object
2. HttpServletRequest의 getInputStream 을 통하여 ByteArray을 받아서 ObjectMapper 로 클래스 객체 변환
>> ClassName object = objectMapper.readValue(request.getInputStream(), ClassName.class);
해당 두가지 방법으로 구현하였을 때 첫번째 방법은 정상적으로 객체 생성이 제대로 이루어지는데
두번째 방법은 기본 생성자가 반드시 있어야만 객체 생성이 가능했습니다.
그래서 기본 생성자가 필요하다보니 해당 클래스의 멤버변수에 final을 제거해야만 했었네요
전자는 일반 컨트롤 메서드에서 사용이 가능하지만 후자는 컨트롤뿐만 아니라 필터에서도 활용이 가능하여 사용하였는데
필터에서 제대로 역직렬화가 되지 않아 차이가 무엇인지 질문을 드립니다.
답변 1
0
안녕하세요. 86andro님
다음 글을 읽어보시면 도움이 되실 듯 합니다.
추가로 이글 마지막에 있는 ParameterNamesModule을 스프링 부트는 자동으로 등록해줍니다.
하지만 objectMapper를 직접 등록하면 이 기능이 동작하지 않습니다.
스프링 부트 ObjectMapper로 검색하시면 스프링 부트가 제공하는 ObjectMapper를 조회하는 방법을 찾을 수 있습니다.
감사합니다.
mvc 패턴 - 적용 강의에서 회원가입할 때 redirect가 아닌 forward인 이유가 궁금합니다.
0
29
1
servlet과 container에 대한 질문입니다
0
54
1
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
0
84
1
jsp 의존성 수정 요청
0
123
2
요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?
0
158
1
save() 메서드 문의
0
77
1
절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상
0
114
1
request-body-json
0
94
2
MVC 패턴의 적용 단위
0
103
1
RequestMapping을 이용한 핸들러, 어댑터
0
124
2
save 후 결과화면
0
101
2
jsp를 이용한 view
0
102
1
application.properties에 debug 추가해도 결과가 똑같습니다.
0
189
1
수업 코드 제공 관련 문의
0
107
2
RequestMappingHandlerAdapter의 Controller 호출 과정
0
109
3
파일 오픈 시
0
75
1
스프링 배치 관련
0
81
1
@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부
0
115
1
postman으로 /request-body-json-v1 호출시 500 error
0
106
1
프론트엔드와 백엔드의 mvc, rest api에 대한 질문
0
90
1
모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문
0
119
1
console log 출력 관련 질문입니다.
0
79
1
애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ
0
146
1
html 변경하는 부분 적용 문제
0
108
1





