Spring Boot AutoConfiguration이란 무엇인가

2024. 4. 27. 17:42Spring Boot/Common

반응형

들어가며

Spring Boot Autoconfiguration은 Bean이나 Component를 자동으로 스캔하고 등록해주는 편리한 기능이다.

Spring Boot Auto-Configuration

  • @Conditional 어노테이션은 auto-configuration에 기본적으로 사용되는 어노테이션이다.
    • @Component, @Configuration, @Bean 등의 어노테이션을 자동으로 등록해준다.
  • @EnableAutoConfiguration 어노테이션은 Spring Boot의 auto-configuration의 사용을 명시한다.
    • @SpringBootApplication 어노테이션 내부에 포함되어 있다.
    • @ComponentScan, @SpringBootConfiguration 어노테이션과 함께 사용된다.
  • main() 메서드가 실행될 때 이 어노테이션들이 auto-configuration을 동작하게 한다.

Auto-Configuration 사용하기

Dependency

  • 어플리케이션을 빌드할 때, Spring Boot는 Spring Framework 또는 jar 파일로 추가된 dependency 목록을 찾아 프로젝트 classpath 내부에 함께 빌드한다.
  • 이 설정은 오버라이딩 할 수 있다.
dependencies {
   compile("org.springframework.boot:spring-boot-starter-web")
   testCompile("org.springframework.boot:spring-boot-starter-test")
}

Spring Application

  • @Bean 은 메서드 레벨의 어노테이션이다
  • @Bean은 메서드의 리턴값을 BeanFactory에 등록하여 Spring Container가 관리하도록 하겠다는 의미이다.
  • @Configuration은 클래스 레벨의 어노테이션이다.
  • @Configuration 어노테이션은 @Bean이 붙은 메서드를 포함한 클래스를 Spring Container (Application Context)에 자동으로 등록하겠다는 의미이다.
@Configuration
public class DataSourceConfig { 
    @Bean 
    public static DataSource source() { 
        DataSourceBuilder<?> db = DataSourceBuilder.create(); 
        db.driverClassName("com.mysql.jdbc.Driver"); 
        db.url("jdbc:mysql://localhost:3306"); 
        db.username("user");  
        db.password("password"); 
        return db.build(); 
    } 
}

Resources

반응형