@SpringBootConfiguration
스프링 부트의 설정을 나타내는 어노테이션
스프링의 @Configuration을 대체하며 스프링 부트 전용으로 사용됨.
필수 어노테이션!
@EnableAutoConfiguration
자동 설정의 핵심 어노테이션 클래스 경로에 지정된 내용을 기반으로
설정 자동화를 수행함.
특별한 설정값을 추가하지 않으면 기본값으로 작동함
--> @Import(AutoConfigurationImportSelector.class)
클래스명 '임포트할 자동 설정을 선택한다'
자동 설정을 위한 조건 어노테이션
조건 어노테이션 |
적용 조건 |
@ConditionalOnBean |
해당하는 빈(Bean) 클래스나 이름이 미리 빈 팩토리에 포함되어 있을 경우 |
@ConditionalOnClass |
해당하는 클래스가 클래스 경로에 있을 경우 |
@ConditionalOnCloudPlatform | 해당하는 클라우드 플랫폼이 활용 상태일 경우 |
@ConditionalOnExpression | SpEL에 의존하는 조건일 경우 |
@ConditionalOnJava | JVM 버전일 일치하는 경우 |
@ConditionalOnJndi | JNDI가 사용가능하고 특정 위치에 있는 경우 |
@ConditionalOnMissingBean | 해당하는 빈 클래스나 이름이 미리 빈 팩토리에 포함되지 않은 경우 |
@ConditionalOnMissingClass | 해당하는 클래스가 클래스 경로에 없을 경우 |
@ConditionalOnNotWebApplication | 웹 애플리케이션이 아닌 경우 |
@ConditionalOnProperty | 특정한 프로퍼티가 지정한 값을 갖는 경우 |
@ConditionalOnResource | 특정한 리소스가 클래스 경로에 있는 경우 |
@ConditionalOnSingleCandidate | 지정한 빈 클래스가 이미 빈 팩토리에 포함되어 있고 단일 후보자로 지정가능한 경우 |
@ConditionalOnWebApplication | 웹 애플리케이션인 경우 |
순서 어노테이션 |
설명 |
@AutoConfigureAfter |
지정한 특정 자동 설정 클래스들이 적용된 이후에 해당 자동 설정 적용 |
@AutoConfigureBefore |
지정한 특정 자동 설정 클래스들이 적용되기 이전에 해당 자동 설정 적용 |
@AutoConfigureOrder |
자동 설정 순서 지정을 위한 스프링 프레임워크의 @Order 변형 어노테이션,기존의 설정 클래스에는 영향을 주지 않고 자동 설정 클래스들 간의 순서만 지정 |
@ComponentScan
특정 패키지 경로를 기반으로 @Configuration에서 사용할 @Component 설정 클래스를 찾음
@ComponentScan의 basePackages 프로퍼티값에 별도의 경로를 설정하지 않으면 @ComponentScan이 위치한 패키지가 루트 경로로 설정
댓글