본문 바로가기
Study/백기선님의 스프링 부트 강의

Day 3. 스프링 부트 스타터

반응형

백기선님의 스프링 부트 2.0 유튜브 강의를 보고 정리한 내용입니다
스프링 부트 2.0 Day 3. 스프링 부트 스타터 - 백기선
해당 영상은 spring-boot 공식 reference를 보며 학습하는 내용입니다



Sprin-boot-starter

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
    </dependency>
</dependencies>
  1. Spring-boot-starter- 로 시작하는 스타터 의존성들은 SpringBoot를 더 편리하게 만들어 놓은 의존성 집합이다

  1. 해당 의존성 집합들은 다른 스타터 의존성들, 기본 Spring-boot-stater-parent와 충돌나지 않게 잘 설정해준다

  1. AutoConfigure module
    라이브러리를 시작할때 필요한 모든 것들을 담고 있는 모듈

    • @ConfigurationProperties
      • 정의된 preperties를 Object에 바인딩 받을 수 있다

  1. Technical staters

    • 기본 default로 설정되는 의존성들을 바꿔낄 수 있는 스타터 집합

    • spring-boot-stater-jetty
      (default: tomcat)

    • spring-boot-stater-log4j2
      (default: logback)

    • spring-boot-stater-reactor-netty


  1. Springboot는 코드 구조를 강요하지 않지만, default 패키지를 권장하지 않습니다
    • default package: 클래스패스 밑에 어떠한 package도 없이 정의되는 class
    • @ComponentScan, @EntityScan, @SpringBootApplication등 package 기반으로 스캔하는 동작들의 불필요한 scan 작업을 줄일 수 있다

  1. @SpringBootApplication이 붙은 main class는 root package 바로 밑에 두는 것을 권장
    • 그래야 root package 하위의 모든 클래스들을 스캔한다

  1. SpringBoot는 java 기반의 설정(Configuration)을 선호한다
    • 기존 Spring처럼 xml 파일 기반의 설정을 사용할 수도 있으나 두 가지 방식중 반드시 한가지를 메인방식으로 정의해야한다

  1. @Configuration 클래스를 하나만 쓸 필요는 없다
    @Import를 통해 @Configuration이 정의된 클래스에 다른 설정을 끌고 들어올 수 있으며,
    @ComponentScan, 나아가 @SpringBootApplication을 통해 하위 패키지를 스캔하며 설정파일을 로드할 수 있다
728x90
반응형