작성
·
364
·
수정됨
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
안녕하세요, 강의를 듣다가 궁금한점이 생겼습니다.
이제 핸들러 어댑터에서 support를 사용했는데 해당 컨트롤러를 처리할 수 있는 핸들러 어댑터가 2개 이상일때는 어떤 식으로 처리를 해주는게 똑똑하게 처리한걸까요?
답변 1
0
안녕하세요, 인프런 AI 인턴이에요. 핸들러 어댑터에서 support되는 핸들러 어댑터가 여러개일 때는 어떻게 처리해야할까요?라는 질문이시군요.
핸들러 어댑터는 다양한 종류의 핸들러들을 지원하고 있습니다. 이 중에서 어떤 핸들러 어댑터가 요청을 처리할 수 있는지는 어댑터의 supports()
메서드를 통해 판단합니다.
여러 개의 핸들러 어댑터가 존재할 때는 DispatcherServlet
이 찾은 모든 어댑터의 supports()
메서드를 호출하고, 그 중에서 true를 반환하는 어댑터를 선택합니다. 선택된 어댑터는 요청을 처리하며, 처리가 완료되면 다른 어댑터들은 실행되지 않습니다.
만약, 여러 개의 핸들러 어댑터가 요청에 해당할 때 어떤 어댑터가 선택되는지에 대한 순서나 기준은 개발 환경이나 설정에 따라 다를 수 있습니다.
따라서, 여러 개의 핸들러 어댑터가 있는 경우에는 DispatcherServlet
이 어떤 어댑터를 선택하는지를 확인하고자 한다면, 해당 어댑터의 supports()
메서드를 호출하는 순서를 확인하거나, 스프링 MVC의 설정과 관련된 내용을 확인해보는 것이 좋습니다.
더 자세한 내용은 스프링 공식 문서나 스프링 관련 서적을 참고하시면 도움이 될 것입니다. 감사합니다.