뷰 리졸버(viewResolver)
2021. 5. 23. 19:50
스프링 웹 MVC
뷰 리졸버(viewResolver) prefix,suffix에 경로와 확장자를 뷰리졸버가 삽입을 해 준다. 우리가 리턴한 view 파일 앞뒤로. ex) spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view.suffix=.jsp 동작 방식은 논리 이름이 반환 되었을 때, (핸들러 갔다오고) 최종 view 반환전에 호출이 되어서 수행한다. 1 = BeanNameViewResolver : 빈 이름으로 뷰를 찾아서 반환한다. (예: 엑셀 파일 생성기능에 사용) 2 = InternalResourceViewResolver : JSP를 처리할 수 있는 뷰를 반환한다. 1. 핸들러 어댑터 호출 (view 논리명 획득) 2. viewResolver 호출 3. InternalR..
핸들러 매핑과 어댑터
2021. 5. 23. 19:38
스프링 웹 MVC
핸들러 매핑과 핸들러 어댑터 HandlerMapping(핸들러 매핑) -핸들러 매핑에서 컨트롤러를 찾을 수 있어야 한다. ex) 스프링 빈의 이름으로 핸들러를 찾을 수 있는 핸들러 매핑이 필요하다. HandlerAdapter(핸들러 어댑터) -핸들러 매핑을 통해서 찾은 핸들러를 실행할 수 있는 핸들러 어댑터가 필요하다. ex) Controller 인터페이스를 실행할 수 있는 핸들러 어댑터를 찾고 실행. 1. 핸들러 매핑으로 핸들러 조회. 2. 핸들러 어댑터 조회. 3. 핸들러 어댑터 실행. 코드는 git private.
디스패처 서블릿(DispacherServlet)
2021. 5. 23. 19:08
스프링 웹 MVC
디스패처 서블릿(DispacherServlet) DispacherServlet은 HttpServlet 을 상속 받아서 사용하고, 서블릿으로 동작한다. DispatcherServlet->FrameworkServlet->HttpServletBean->HttpServlet 앞서 공부한 프론트 컨트롤러와 동일하다. 최종적으로 MVC동작은 1. 핸들러 조회 2. 핸들러 어댑터 조회 3. 핸들러 어댑터 실행 4. 핸들러 실행 5. ModelAndView 반환 6. viewResolver 호출 7. View 반환 8. 뷰 랜더링. 직접구현한 코드는 git에 저장하였으나, 저작권 문제로 private. 스프링 MVC의 큰 강점은 DispatcherServlet 코드의 변경 없이, 원하는 기능을 변경하거나 확장할 수 있..
어댑터 패턴.
2021. 5. 23. 19:03
스프링 웹 MVC
어댑터 패턴. 공부한 프론트 컨트롤러는 한 가지 방식의 컨트롤러 인터페이스만 사용가능. Contrller3, Controller4 호환불가. 다른 인터페이스 이므로, 그래서 어댑터 패턴을 사용해서 다양한 방식의 컨트롤러를 처리 할 수 있도록 한다. 요청-->프론트 컨트롤러-->핸들러 매핑정보-->핸들러 어댑터 목록 --->핸들러 어댑터--->컨트롤러--->뷰리졸버--->응답 요청이 들어오면 핸들러 조회하고, 핸들러를 처리하는 핸들러 어댑터 조회, 핸들러 어댑터가 핸들러 호출, 반환,반환,반환, 프론트 컨트롤러가 뷰리졸버로 패스 완성시켜서 랜더링 내려준다.