Spring Boot는 Maven dependency에 Boot Starter Dependency를 추가하면 자동으로 아래와 같이 AutoConfiguration 클래스를 로딩하여 초기화합니다. 이때 application.yml
파일에 AutoConfiguration 클래스가 로딩해야 하는 설정을 자동으로 로딩해서 처리합니다. 예를 들면 JPA Starter를 등록하면 자동으로 DataSource를 초기화합ㄴ다.
하지만 수동으로 설정하고 싶은 경우 해당 AutoConfiguration이 동작하지 않도록 해야 합니다. 다음은 별도 코드 수정없이 application.yml
파일에서 AutoConfiguration을 제외하는 설정입니다.
application.yml
spring: autoconfigure: exclude: - org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration - org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration
YAML 파일 설정이 아닌 프로그래밍 방법으로 적용하려면 다음과 같이 Spring Boot Application의 옵션을 지정할 수 있습니다. 다만, 이 방법은 수정시 마다 컴파일을 해야 하므로 권장하지 않습니다.
@SpringBootApplication( exclude = { RedisAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class } )
만약에 특정 AutoConfiguration의 우선순위를 조정하려면 @AutoConfigurationAfter
와 @AutoConfigurationBefore
를 사용할 수 있습니다.
@Configuration @AutoConfigureBefore(JacksonAutoConfiguration.class) public class SpringAutoConfiguration { }