⭐️유연한 컨트롤러2 - v5(어댑터 도입, 인터페이스3,4 처리)
private MyHandlerAdapter getHandlerAdapter(Object handler) {
//handler = MemberFormControllerV4
for (MyHandlerAdapter adapter : handlerAdapters) {//리스트 다 뒤진다.
if(adapter.supports(handler)){//Controller3Adapter 먼저 검사하고, 조건 불충족하면 다음 Controller4Adapter 조건 검사
return adapter;//MyHandlerAdapter adapter를 리턴한다!
}
}
throw new IllegalArgumentException("Handler Adapter를 찾을 수 없습니다.handler"+handler);
}private void initHandlerMappingMap() {
handlerMappingMap.put("/front-controller/v5/v32/members/new-form",new MemberFormControllerV32());
handlerMappingMap.put("/front-controller/v5/v32/members/save",new MemberSaveControllerV32());
handlerMappingMap.put("/front-controller/v5/v32/members",new MemberListControllerV32());
//v4 추가
handlerMappingMap.put("/front-controller/v5/v4/members/new-form",new MemberFormControllerV4());
handlerMappingMap.put("/front-controller/v5/v4/members/save",new MemberSaveControllerV4());
handlerMappingMap.put("/front-controller/v5/v4/members",new MemberListControllerV4());
}
private void initHandlerAdapters() {
handlerAdapters.add(new ControllerV32HandlerAdapter());//MyHandlerAdapter 구현체로 ControllerV32 추가!
handlerAdapters.add(new ControllerV4HandlerAdapter());//MyHandlerAdapter 구현체로 ControllerV4 추가!
}Last updated