728x90 Spring83 [Spring] 프론트 컨트롤러 6 : 어댑터 추가 어댑터 추가 앞서 구현했던 버전에서 ControllerV4 어댑터를 만들고 FrontController 에 추가해보자. ControllerV4HandlerAdapter 앞에서 만든 ControllerV3HandlerAdapter 와 구조는 비슷하지만 어댑터 부분에 차이가 있다. public class ControllerV4HandlerAdapter implements MyHandlerAdapter { @Override public boolean supports(Object handler) { return (handler instanceof ControllerV4); } @Override public ModelView handle(HttpServletRequest request, HttpServletRes.. 2021. 10. 30. [Spring] 프론트 컨트롤러 5 : 어댑터 적용 어댑터 적용 어댑터 패턴을 적용해본다. 적용하는 이유는 사용자마다 V4 또는 V5 를 선택해서 사용하게 하려고 한다. 어댑터 패턴 예제 - https://vprog1215.tistory.com/261 어댑터를 적용한 구조 핸들러 매핑정보: 요청에 대한 정보를 담는다. 요청된 url 을 key 로 컨트롤러를 value 로 갖는다. 핸들러 어댑터 목록: 핸들러 매핑정보에서 가져온 컨트롤러를 처리할 어댑터를 담고 있는다. 핸들러 어댑터: 반환된 핸들러 어댑터에서 핸들러를 처리한다. MyHandler Adapter 어댑터를 구현하기 위한 인터페이스이다. supports: - 구현체가 해당 핸들러를 지원하는지 확인한다. handle: - 핸들러를 조회한뒤 public interface MyHandlerAdapte.. 2021. 10. 30. [Spring] 프론트 컨트롤러 4 : 개선편 프론트 컨트롤러 4 앞서 만들어 둔 프론트컨트롤러를 개선한다. 개선방안 우리는 앞에 프로젝트에서 모델뷰를 만들었다. 이번에는 모델뷰를 제거한다. 대신 컨트롤러에 Map 을 넘겨 필요한 데이터를 저장한다. Controller interface 모델 뷰가 없어지고 파라미터들이 Map 으로 변경되었다. package hello.servlet.web.frontcontroller.v4; import java.util.Map; public interface ControllerV4 { /** * * @param paramMap * @param model * @return viewName */ String process(Map paramMap, Map model); } FrontContorller Map 으로 mode.. 2021. 10. 26. [Spring] 프론트 컨트롤러 3 : 종속성제거, 뷰리졸버 구현 프론트 컨트롤러 종속성제거, 뷰리졸버 구현 이전에 반복되는 코드들을 줄인다. 프론트컨트롤러에 많은 역할을 주고 일반 컨트롤러에서는 종속성을 제거한다. 서블릿 종속성을 제거한다. 컨트롤러 입장에서 HttpServletRequest, HttpServletResponse 가 꼭 필요하진 않다. 그렇다면 requset 에서 model을 가져다 썼는데 어떻게 해결할까? - 직접 만들어서 사용한다. 종속성을 제거의 장점 불필요한 코드 request, response 를 줄일수 있다. 만약 파일의 경로가 변경되면 프론트컨트롤러 만 손보면 된다. 유지보수가 간편해 진다. 뷰이름 중복제거 컨트롤러마다 뷰이름이 계속해서 등장하고 절대경로를 사용한다. 상대경로로 변경하여 구현한다. /WEB-INF/views/new-form.. 2021. 10. 23. 이전 1 ··· 7 8 9 10 11 12 13 ··· 21 다음 728x90 반응형