어댑터 패턴(Adapter Pattern), Spring

Stormi·2022년 4월 8일
0

개발

목록 보기
6/20

Adapter패턴은 서로 호환되지 않는 두 클래스를 호환되도록 만들어준다.

client -----depends on ----> target
............................................................^
............................................................|
............................................................|
............................................................implemets
............................................................|
............................................................|
............................................................|
adaptee<-----------------adapter

스프링 MVC가 지원하는 컨트롤러는 4가지이다.
각 컨트롤러를 DispatchServelt에 연결해주는 어댑터가 하나씩 있어야하므로, 핸들러 어댑터도 4개이다.

SimpleServeletHandlerAdapter를 제외한 3개의 핸들러 어댑터는 DispatchServelet에 디폴트 전략으로 설정되어있다.

AnnotationMethodHandlerAdapter 를 사용할 것임

  • 컨트롤러의 타입이 정해져있지 않음

  • 다른 핸들러 어댑터는 특정 인터페이스를 구현한 컨트롤러만 지원한다.

  • 어노테이션메소드핸들러어댑터는 컨트롤러 타입에는 제한이 없다. 대신 클래스와 메소드에 붙은
    몇 가지 어노테이션의 정보와 메소드 이름, 파라미터, 리턴타입에 대한 규칙등을 종합적으로 분석해서
    컨트롤러를 선별하고 호출하는 방식을 결정한다.

  • 컨트롤러 하나가 하나 이상의 URL에 매핑될 수 있다. 컨트롤러는 특정 인터페이스를 구현하면 그 인터페이스의 대표 메소드를 통해 컨트롤러가 호출되기 때문에, 특별한 확장 기능을 사용하는 경우를 제외하면 URL당 하나의 컨트롤러가 매핑되는 구조이다.

  • AnnotationMethodHandlerAdapter는 DefaultAnnotationHandlerMapping 핸들러 매핑과 함께 사용해야한다. 두가지 모두 동일한 어노테이션을 사용하기 때문이다.

  • 규칙을 알고 제대로 사용해야함.

--------> 이것을 사용하려고 했는데 아예 어댑터 패턴을 사용해서 직접 썼음

<버그레포팅 부분>

https://velog.io/@cokkum113/%EB%8B%A8%EC%9D%BC-%EC%B1%85%EC%9E%84-%EC%9B%90%EC%B9%99

0개의 댓글