[데브코스] Spring Boot Configuration

Updated: Categories:

W5D5 - Spring Boot의 편리한 자동설정 Auto Configuration에 대해 알아보자

Spring Boot로 전환

  • 이전까지 Spring만 사용해서 설정했던 것들을 Spring Boot로 설정해보자
  • application.yaml에서 정의만 해주면 알아서 설정해준다… (이렇게 편하다고?)

Datasource + 템플릿 엔진 설정

  • spring 타이틀 하위로 설정 가능
spring:
  datasource:
    url: jdbc:mysql://localhost/DB
    username: root
    password: pw
  thymeleaf:
    view-names: "views/*"
    prefix: "/WEB-INF/"

Servlet Context Path

  • server 타이틀 하위로 설정
server:
 servlet:
   context-path: /기본URL설정

Logging

  • Logging 하위로 로깅 레벨을 설정 가능
  • 각 Profile의 yaml파일마다 다르게 설정할 수 있다.
logging:
  level:
    org.springframework: 레벨

결과

  • CORS 및 메시지 컨버터(Marshaller) 설정은 기존처럼 WebMvcConfigurer을 상속받아 작성해줘야함
  • Auto Configuration을 통해 자동 설정됨
    • Resource Handler 설정
    • Json 형식 변환 설정
    • jdbc 템플릿 설정


Auto Configuration

  • 이런 자동 설정은 Spring Boot의 Auto Configuration 덕에 편리하게 사용할 수 있는 것!
  • EnableAutoConfiguration이라는 인터페이스의 구현체로 spring.factories에서 필요한 Configuration을 긁어온다.
  • Conditional이라는 구현체를 통해 pom.xml에 import된 모듈의 관련 Bean들만 등록되도록 필터링
    • @SpringBootApplication에서 exclude 조건을 줘서 필터링할 수 있다
  • 내부에선 @EnableConfigurationProperties로 yaml에 정의된 내용들을 Bean에 반영해준다