Spring Boot 에서 자동 구성(auto-configuration) 을 활성화 하는데 사용됨. Spring Boot 는 애플리케이션의 설정을 자동으로 구성하고, 개발자가 명시적으로 설정하지 않은 많은 기본 설정을 제공하여 신속한 개발을 지원함.
이 어노테이션은@Configuration
어노테이션을 포함하고 있으며,@ComponentScan
과 함께 작동하여 Spring Boot 애플리케이션의 설정을 자동으로 조정
spring-boot-starter-data-jpa
를 포함하면, Spring Boot 는 JPA와 관련된 기본적인 데이터베이스 설정을 자동으로 구성@EnableAutoConfiguration
은 Spring Boot 애플리케이션의 핵심 기능중 하나로, 애플리케이션의 환경에 따라 필요한 빈을 자동으로 생성하고 설정함.@EnableAutoConfiguration
은 보통 @SpringBootApplication
어노테이션에 포함되어 사용됨
@SpringBootApplication
은 내부적으로 @EnableAutoConfiguration
을 포함하고 있기 때문에, 별도로 선언할 필요는 없음
import org.springframework.boot.SpringApplication;
import org.springframewirk.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MySpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(MySpringBootApplication.class, args);
}
}
@SpringBootApplication
은 @EnableAutoConfiguration
, @Configuration
, @ComponentScan
을 포함하고 있음
자동 구성의 특정 부분만을 활성화하거나 비활성화하려면 exclude
속성을 사용할 수 있음
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(exclued = {DataSourceAutoConfiguration.class})
public class MySpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(MySpringBootApplication.class, args);
}
}
데이터 소스 자동 구성을 비활성화
@EnableAutoConfiguration
은 조건부 자동 구성을 지원함.
@ConditionalOnClass
, @ConditionalOnMissingBean
, @ConditionalOnProperty
등의 조건부 어노테이션을 사용하여 특정 조건에 따라 자동 구성을 적용
자동 구성은 application.properties
또는 application.yml
파일을 통해 조정할 수 있음. 예를들어, 데이터베이스의 접속 정보를 설정할 수 있음
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=password