일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 알고리즘
- Exception
- SpringBoot
- Android
- 그리디
- 스프링 핵심 원리
- java
- Spring Boot
- jpa
- QueryDSL
- kotlin
- 백준
- http
- AOP
- transaction
- JPQL
- db
- 스프링 핵심 기능
- springdatajpa
- spring
- Thymeleaf
- 인프런
- 김영한
- Proxy
- 스프링
- Greedy
- JDBC
- pointcut
- 자바
- Servlet
- Today
- Total
목록인프런/[인프런] 스프링 MVC 1 (59)
개발자되기 프로젝트
SpringMVC는 개발자가 편리하게 개발할 수 있도록 다양한 기능 제공. 1. SpringMemberFormControllerV3 반환 타입 annotation기반 Controller는 ModelAndView or String을 반환해도됨. return된 String을 기반으로 JSP찾아감. Http 메서드 지정 @RequestMapping(value = "/new-form", method = RequestMethod.GET) @GetMapping("/new-form") //@RequestMapping(value = "/new-form", method = RequestMethod.GET) @GetMapping("/new-form") public String newForm(){ return "new-fo..
1. Controller 통합 @RequestMapping는 메서드 단위에 적용된 것을 확인할 수 있다. 따라서 컨트롤러 클래스를 유연하게 하나로 통합할 수 있다. 클래스에 붙은 @RequestMapping()에 url의 공통 부분을 넣어도 가능.210912 SpringMVC @Controller @RequestMapping("/springmvc/v2/members") public class SpringMemberControllerV2 { private MemberRepository memberRepository = MemberRepository.getInstance(); @RequestMapping("/new-form") public ModelAndView newForm(){ return new Mod..
210912 SpringMVC1. @RequestMapping 스프링은 애노테이션을 활용한 매우 유연하고, 실용적인 컨트롤러를 만들었다. 바로@RequestMapping 애노테이션을 사용하는 컨트롤러이다. RequestMappingHandlerMapping -> HandlerMapping RequestMappingHandlerAdapter -> HandlerAdapter 가장 우선순위가 높은 핸들러 매핑과 핸들러 어댑터는 아래와 같다. RequestMappingHandlerMapping RequestMappingHandlerAdapter 즉 @RequestMapping이 붇어있으면, RequestMappingHanderMapping, RequestMappingHandlerAdapter사용. 2. Spri..
1.OldController - View 조회할 수 있도록 변경 @Component("/springmvc/old-controller") //빈 이름을 url패턴으로. public class OldController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("OldController.handleRequest"); return new ModelAndView("new-form"); } } 실행을 해보면 정상 호출은 되는데 Whitelabel Error Page ..
1. Controller 인터페이스, 구현 과거버전 SpringController org.springframework.web.servlet.mvc.Controller @Component("/springmvc/old-controller") //빈 이름을 url패턴으로. public class OldController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("OldController.handleRequest"); return null; } } @Compone..
1. 직접 만든 MVC & Spring MVC 전체 구조 직접 만든 프레임워크 → 스프링 MVC 비교 FrontController → DispatcherServlet handlerMappingMap → HandlerMapping MyHandlerAdapter → HandlerAdapter ModelView → ModelAndView viewResolver → ViewResolver MyView → View 2. DispatcherServler org.springframework.web.servlet.DispatcherServlet SpringMVC의 FrontController = DispatcherServlet DispatcherServlet 등록 DispacherServlet 도 부모 클래스에서 Ht..
V5는 V3, V4 Controller 모두 대응이 가능하도록 작성해보자. FrontControllerV5에 ControllerV4도 추가해보자. 1. ControllerV4HandlerAdapter ControllerV4는 process() 실행 후 String viewName을 return한다. MyHandlerAdapter 인터페이스는 기본적으로 handler()에서 controller의 process()를 호출하고 ModelView를 반환. 따라서 Adapter에서 ModelView를 반환해야 하기 때문에 ControllerV4를 위한 Adapter는 별도로 ModelView생성필요. public class ControllerV4HandlerAdapter implements MyHandlerAda..
누구는 v4, 누구는 v3로 개발하고 싶으면 어떡하지? 1. Adapter 패턴 지금까지 우리가 개발한 프론트 컨트롤러는 한가지 방식의 컨트롤러 인터페이스만 사용할 수 있다. ControllerV3 , ControllerV4 는 완전히 다른 인터페이스이다. 따라서 호환이 불가능하다. 마치 v3는 110v이고, v4는 220v 전기 콘센트 같은 것이다. 이럴 때 사용하는 것이 바로 어댑터이다. 어댑터 패턴을 사용해서 프론트 컨트롤러가 다양한 방식의 컨트롤러를 처리할 수 있도록 변경해보자. 2. V5 구조 핸들러 어댑터: 중간에 어댑터 역할을 하는 어댑터가 추가되었는데 이름이 핸들러 어댑터이다. 여기서 어댑터 역할을 해주는 덕분에 다양한 종류의 컨트롤러를 호출할 수 있다. 핸들러: 컨트롤러의 이름을 더 넓은..