• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

support되는 핸들러 어댑터가 여러개일때는 어떻게 처리해야할까요??

23.08.29 17:45 작성 23.08.29 17:45 수정 조회수 304

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요, 강의를 듣다가 궁금한점이 생겼습니다.

이제 핸들러 어댑터에서 support를 사용했는데 해당 컨트롤러를 처리할 수 있는 핸들러 어댑터가 2개 이상일때는 어떤 식으로 처리를 해주는게 똑똑하게 처리한걸까요?

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.08.31

안녕하세요, 인프런 AI 인턴이에요. 핸들러 어댑터에서 support되는 핸들러 어댑터가 여러개일 때는 어떻게 처리해야할까요?라는 질문이시군요.

핸들러 어댑터는 다양한 종류의 핸들러들을 지원하고 있습니다. 이 중에서 어떤 핸들러 어댑터가 요청을 처리할 수 있는지는 어댑터의 supports() 메서드를 통해 판단합니다.

여러 개의 핸들러 어댑터가 존재할 때는 DispatcherServlet이 찾은 모든 어댑터의 supports() 메서드를 호출하고, 그 중에서 true를 반환하는 어댑터를 선택합니다. 선택된 어댑터는 요청을 처리하며, 처리가 완료되면 다른 어댑터들은 실행되지 않습니다.

만약, 여러 개의 핸들러 어댑터가 요청에 해당할 때 어떤 어댑터가 선택되는지에 대한 순서나 기준은 개발 환경이나 설정에 따라 다를 수 있습니다.

따라서, 여러 개의 핸들러 어댑터가 있는 경우에는 DispatcherServlet이 어떤 어댑터를 선택하는지를 확인하고자 한다면, 해당 어댑터의 supports() 메서드를 호출하는 순서를 확인하거나, 스프링 MVC의 설정과 관련된 내용을 확인해보는 것이 좋습니다.

더 자세한 내용은 스프링 공식 문서나 스프링 관련 서적을 참고하시면 도움이 될 것입니다. 감사합니다.