ViewResolver 관련 질문 있습니다
261
작성한 질문수 2
이번이 처음 듣는 것도 아니고, 몇 년 전에 구매하여 지금까지 여러번 반복해서 정주행 했는데 오늘 갑자기 잘 이해가 안가는 부분이 생겼습니다.
제가 지금 이해하고 있는 것은 이렇습니다.
1. ViewResolver는 View를 resolving한다.
(ThymeleafViewResolver를 예로 들면 문자열을 View의 이름으로 해석해서 View를 resolving한다.)
2. 강의 속 핸들러는 @ResponseBody가 붙어 있으므로 View가 없다.
3. ViewResolver는 요청의 accept 헤더를 확인한다.
4. accept 헤더에 맞게 User라는 객체를 변환하여 응답 본문에 싣는 일은 HttpMessageConverters의 구현체가 한다.
일단 2번이 맞다면, ViewResolver는 강의 속 핸들러에서 어떤일을 하는 건가요? 아니면 응답 본문도 하나의 View로 볼 수 있는건가요? 아니면 ViewResolver가 @ResponseBody를 보고 View 없이 응답 본문만 있으면 된다고 판단하여 HttpMessageConverters에게 알려주는 일을 하는건가요??
3번도 맞고, 4번도 맞다면 ViewResolver는 자기가 변환 작업을 해줄 것도 아니면서 accept 헤더는 왜 확인하는 건가요? 오히려 변환작업을 하는 HttpMessageConverters가 확인하는 게 더 자연스러울 것 같은데..
ViewResolver가 어떤 일을 하는지, HttpMessageConverters와의 협업? 플로우가 어떻게 되는지 궁금합니다.
강의 나온지가 언젠데 지금 질문을 드려 죄송합니다 :( 좋은 강의 감사합니다. 항상 잘 보고 있습니다!
답변 1
1
@ResponseBody가 붙어있으면 ViewResolver는 아무일을 하지 않습니다. 정리하신대로 MessageConverter가 일을 합니다.
그리고 3번은 잘못된것 같습니다. ViewResolver가 확인하는게 아니라 여러개의 Converter중에 어떤 ContentType을 보고 어떤 Converter를 쓸지 판단하는 코드가 핸들러에 연결되어 있습니다. 정확히 어떤 인터페이스인지는 기억나지 않지만 ViewResovler는 아닙니다.
자동설정 만들기 1부의 Holoman 관련 문의 드립니다.
0
96
1
라이브러리 개발 예제 강의를 찾습니다 !!!
0
240
2
강의 진행되로 똑같이 했는데 jquery가 실행되지 않았는데
0
327
1
HateOas 가 업데이트가 되어서, "Spring HATEOAS" 코드를 아래처럼 하셔야 될겁니다.
0
378
2
springSecurit jwt에 대해서 질문드립니다.
0
351
1
섹션2 자동설정 부분 질문있습니다.
0
257
1
mongo shell 명령어 대체 mongo -> mongosh
0
1019
1
데이터베이스 마이그레이션 강의에서 질문 있습니다
0
713
0
자동 설정 만들기 2부에서 질문 있습니다
0
427
1
의존성 관리 응용 부분에서 질문 있습니다
0
327
0
Intellij 에서 빈 주입할때 계속 빨간줄이 뜨는데 어떻게 고쳐야 할까요
0
1191
1
자동설정으로 다른 프로젝트 빈 사용(번외질문)
0
372
0
CREATE TABLE 예제 따라하다가 'expected "identifier"; SQL statement:' 오류나는 경우
2
2222
2
junit5 관련하여 질문드립니다.
0
322
2
맨 처음 프로젝트 생성 후 Run 시 에러
0
541
2
외부 설정과 관련된 질문입니다.
0
267
1
test와 runner account.setEmail에 동일한 값 입력
0
331
1
컨트롤러 view 호출
0
270
1
JVM 과 arguments 는 뭔가요???
0
1176
1
pom 테그 에러
0
362
1
안녕하십니까 기선님!!!!! webclient와 비동기관련 질문요청드립니다
0
1558
1
webEnvironment 내장 톰캣
0
232
1
application.yml 파일 분리
0
398
1
안녕하세요 기선님 서블릿 어플리케이션 구조에 대해 질문드립니다
0
284
1





