인프런 커뮤니티 질문&답변

유석균님의 프로필 이미지
유석균

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

여러개의 ArgumentResolver

작성

·

457

0

여러개의 argument resolver 등록 했을때

등록한 여러개의 argument resolver의 supportsParameter은 모두 return true일경우

먼저 등록(add)한 resolver의 resolveArgument부터 차례대로 실행되는건가요??

답변 1

1

안녕하세요. 유석균님, 공식 서포터즈 David입니다.

네, 맞습니다. 로그를 찍어보시면 간단히 테스트 해 보실 수 있으니 참고해 주세요:)

감사합니다.

유석균님의 프로필 이미지
유석균
질문자

저는 제일 먼저 등록(add)한 resolver의 resolveArgument 만 실행시키고 끝이 나더라구요 ㅠㅠ

만약 supportsParameter가 true일 때에도 뒤에 resolver도 거치게 되는지를 물으신거라면 true 이후 계속 resolver를 순회하지 않습니다.

예를 들어, 핸들러 파라미터로 Foo, Bar를 가지고 있다면

Foo를 해결하기 위해 resolver list를 순회하고, 그 중 supportParameter가 true가 나온다면 거기서부터는 resolver list 순회를 멈추게 됩니다.

유석균님의 프로필 이미지
유석균
질문자

넵!! 제가 물어본것이 맞습니다 감사합니다!!

그렇다면 resolveArgument를 2개이상 실행 시키려면 어떤 방법이 있을까요??

하나의 resolveArgument는 무조건 실행시키게 하고싶고 나머지 1개의 resolveArgument는 supportsParameter의 값에따라 실행시키게 하고싶습니다.. ㅠㅠ

아니면 2개이상 실행시키는 방법은 추천하지 않는 방식인건가요??

위에 설명드린 대로 동작하기 때문에 만약 원하시는 대로 동작하려면 하나의 리졸버 안에서 분기를 만들어야 할 것 같습니다.

유석균님의 프로필 이미지
유석균
질문자

감사합니다!!

유석균님의 프로필 이미지
유석균

작성한 질문수

질문하기