@SpringBootApplibcion

스프링 부트 애플리케이션의 시작점

package com.fastcampus.springbootpractice;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class FastcampusSpringBootPracticeApplication {

    public static void main(String[] args) {
        SpringApplication.run(FastcampusSpringBootPracticeApplication.class, args);
    }

}

@SpringBootConfiguration : 스프링 부트용 @Configuration

@EnableAutoConfiguration: 사전에 정의한 라이브러리 빈을 등록.

@ComponenetScan : 각종 스프링 빈 애노테이션을 베이스 패키지에서부터 스캔하여 스프링 빈으로 스프링 IoC 컨테이너에 등록.

@Component vs @Configuration

@Component

“ 이클래스는 커스텀 빈이다.”

  1. @ComponetScan → base package 에서부터 모든 @Componet 검색
  2. 인스턴스화 : 필요한 의존성을 모두 주입
  3. 스프링 컨테이너에 등록 : 필요한 곳에 주입

참고: 빈을 만드는 방법 2+1가지

  1. @Component
  2. @Bean(in @Configuration)
  3. @Bean(in @Component): Lite Mode

@Component vs @Bean

@Componet

@Bean

@Component: Stereotype Annotations

컴포넌트에 해당하는 스테레오 타입 애노테이션들

@Component 의 결론 : Bean 이다.

@Configuration

“이 클래스는 각종 빈 설정을 담고 있다.”

  1. @SpringBootApplication 이 컴포넌트 스캔을 통해 @Configuration 을 찾아냄.
  2. 안의 빈 설정(메소드)을 읽어서 스프링 컨테이너에 등록
  3. 필요한 곳에 주입