티스토리 뷰

Spring

Spring - MVC Spring Boot Mvc 설정

엔꾸꾸 2019. 7. 13. 16:25

Spring Boot - MVC 설정

  • Spring boot의 주관에 따라 기본적으로 Bean이 등록된다.
  • HandlerMapping
    • SimpleUrlHandlerMapping (favicon 요청처리)
    • RequestMappingHanlderMapping (애노테이션 기반 MVC)
    • BeanNameUrlHandlerMapping
    • SimpleUrlHandlerMapping (resouceHandlerMapping_정적리소스제공 기능)
      • 응답헤더에 캐시정보를 추가해준다.
      • 캐시정보를 기반으로 Resource를 효율적으로 제공한다.
      • Resource가 변경되지 않았을경우 Not Modified 응답을 보내줌으로써 브라우저가 캐싱하고있는 Resource를 사용하도록 한다.
    • WelcomPageHandlerMapping

spring boot autoconfigure - handlerMappings

  • HandlerAdapter
    • RequestMappingHandlerAdapter
    • HttpRequestHandlerAdapter
    • SimpleControllerHandlerAdapter

spring boot autoconfigure - handlerAdapters

  • ViewResolver
    • ContentNegotiatingViewResolver
      • 아래의 ViewResolver들이 ContentNegotiatingViewResolver이 Delegating하는 ViewResolver 들이다.
      • ContentNegotiatingViewResolver는 직접 View를 보내주는것이 아니다.
      • 다른 ViewResolver들을 내부적으로 참조하고있다.
    • BeanNameViewResolver
    • ThymeleafViewResolver
    • ViewResolverComposite
    • InternalResourceViewResolver

spring boot autoconfigure - viewResolvers

  • 자동설정
    • org.springframework.boot:spring-boot-autoconfigure
    • spring boot 가 제공하는 자동설정 의존성
      • spring.factories에 다양한 자동설정 클래스들이 명시되어있다
      • 특정 조건에 따라 빈으로 등록된다.

 

org.springframework.boot:spring-boot-autoconfigure
spring.factories

  • DispatcherServletAutoConfiguration
    • DispatcherServlet을 특정 설정에 따라 자동적으로 등록해준다.

DispatcherServletAutoConfiguration

  • WebMvcAutoConfiguration
    • WebMvc관련 자동 설정
    • Servlet Type의 애플리케이션일경우 웹 애플리케이션 관련 자동 설정을 해준다.

WebMvcAutoConfiguration

  • @ConditionalOnClass
    • 해당 클래스가 클래스패스엥 존재할경우 설정을 적용하도록 한다.
  • @ConditionalOnMissingBean
    • 해당 클래스가 빈으로 등록되어 있지않을경우 설정을 적용하도록한다.
  • Spring boot properties
    • Spring boot 의 자동설정은 properties를 읽어와서 적용되는 설정
    • 즉 properties 설정파일에서 커스터마이징이 가능하다.
  • Spring boot MVC 커스터마이징
    • application.properties (스프링부트의 자동설정 + 자동설정 커스터마이징)
    • @Configuration + WebMvcConfigurer (스프링부트의 자동설정 + 확장 설정)
    • @Configuration + @EnableWebMvc + WebMvcConfigurer (Spring boot 자동설정을 사용하고 싶지 않을경우 사용하는 방법)

'Spring' 카테고리의 다른 글

Spring - MVC DomainClassConverter  (0) 2019.07.14
Spring - MVC WebMvcConfigurer_Formatter  (0) 2019.07.14
Spring - MVC Spring Boot Mvc 설정  (0) 2019.07.13
Spring - MVC WebMvcConfigurer  (0) 2019.07.12
Spring - MVC @EnableWebMvc  (0) 2019.07.11
Spring - MVC 빈 설정 방법  (0) 2019.07.11
댓글
댓글쓰기 폼
공지사항
Total
103,172
Today
231
Yesterday
310
링크
TAG
more
«   2022/05   »
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        
글 보관함