본문 바로가기

TIL

2022/03/07 TIL

Java8 Default Method

자바8 부터는 인터페이스에 default 메소드(구현이 있는 메소드)를 사용할 수 있다.
다양한 사용방법이 있겠지만 '원하는 메소드만 구현'하고 싶을 때 사용할 수 있다는 것을 알게 되었다.

Spring에 WebMvcConfigurer interface가 있는데 자바7 까지는 default 메소드가 없기 때문에 WebMvcConfiguereAdapter라는 추상 클래스를 사용하여 원하는 메소드를 재정의 했었다. 하지만 자바8이 나오면서 WebMvcConfiguereAdapter는 Deprecated 되었고 WebMvcConfigurer를 바로 구현하게 되었다.

토비의 스프링 3.1

오브젝트의 설계와 구현, 동작원리에 더 집중하기를 바란다. 그러다 보면 자연스럽게 스프링이 무엇인지도 이해될 것이다.

스프링을 먼저 보는 것이 아니라 객체에 집중해야 한다.

자바빈이란?

디폴트 생성자 : 파라미터가 없는 생성자가 있어야 한다. 프레임워크에서 리플렉션을 이용해 오브젝트를 생성하기 때문이다.
프로퍼티 : 자바빈이 노출하는 이름을 가진 속성을 프로퍼티라고 한다.

JPA에서 Entity로 설정한 클래스에 디폴트 생성자가 있어야 하는 이유를 종종 학습하곤 하는데, JPA에 한정된 이야기가 아니라 자바빈이라면 디폴트 생성자를 가지고 있어야 하고 JPA는 이를 준수하며 활용할 뿐이다.


Spring Mvc 동작 방식

  1. 클라이언트 요청하면 DispatcherServlet이 받는다.
  2. DispatcherServlet이 HandlerMapping에게 컨트롤러 검색을 요청한다.
  3. HandlerMapping은 클라이언트의 요청 경로를 이용해서 이를 처리할 빈(bean)객체를 DispatcherServlet에게 요청한다.
  4. DispatcherServlet은 이를 처리할 수 있는 빈객체를 HandlerAdapter에게 전달한다.
  5. HandlerAdapter는 ModelAndView라는 객체로 변환하며 DispatcherServlet에게 돌려준다.
  6. DispatcherServlet은 ViewResolver에게 컨트롤러가 리턴한 view를 담고 있는 ModelAndView 객체를 전달한다.
  7. DispatcherServlet은 ViewResolver가 리턴한 View객체를 응답에 사용한다.

'TIL' 카테고리의 다른 글

2022/03/03 TIL  (0) 2022.03.04
2022/03/02 TIL  (0) 2022.03.03
2022/02/28 TIL  (0) 2022.02.28
2022/02/24 TIL  (0) 2022.02.25
2022/02/23 TIL  (0) 2022.02.24