@AutoConfiguration
@SpringBootApplication
어노테이션이 내부에 가지는 @EnableAutoConfiguration
어노테이션으로 활성화@AutoConfiguration
내부에 @Configuration
어노테이션을 가지고 있기 때문에 빈을 등록하는 설정 파일로 사용 가능after = DataSourceAutoConfiguration.class
@ConditionalOnClass({ DataSource.class, JdbcTemplate.class })
@Import
스프링에서 자바 설정 클래스를 추가할 때 사용
예) @Import({AConfig.class, BConfig.class})
위처럼 직접 추가할 수도 있지만, ImportSelector인터페이스를 구현한 클래스를 받기도 함
ImportSelector에서 중요한 메서드는 selectImports()
메서드임
해당 메서드는 String배열을 반환하는데, 해당 배열에 들어있는 (경로 + 클래스)를 바탕으로 설정 정보를 불러올 수 있음
앞선 예제에서 AConfig.class, BConfig.class를 직접 사용하는 것보다는 특정 조건등에 따라 등록을 달리할 수 있기 때문에 비교적 동적으로 사용이 가능함
**@EnableAutoConfiguration
**어노테이션이 ImportSelector방식으로 작동함
~AutoConfiguration.imports파일에서 작성된 설정파일을 모두 가져와서 조건에 따라 등록하는 것이 자동구성인 것
자동 설정, 자동 구성
@Conditional
matches()
메서드를 가지는데 해당 메서드의 boolean타입의 반환값에 따라 빈이 등록되거나 등록되지 않도록 함