MyAutoConfigImportSelector

소스코드에 등록해놨던 정보를 외부 설정파일로 분리

유연하게 작업하기 위해 소스코드에 등록해놨던 문자열 정보를 외부 설정파일로 분리하는 작업 진행

1. 애너테이션 생성

Spring Boot의 자동 구성 정보 생성에 사용할 것들이기 때문에 애너테이션을 추가로 하나 더 만듦

MyAutoConfiguration

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Configuration
public @interface MyAutoConfiguration {
}

2. 애너테이션 이름과 동일한 설정파일 생성

자동 구성방식에 사용할 Configuration 클래스에 목록을 집어 넣을 것

MyAutoConfigImportSelector 수정

어떤 파일에서 자동 구성 대상 Configuration의 후보들을 읽어오는 코드를 작성해야 됨

후보는 무슨 뜻일까?

파일에 어떤 Configuration 클래스들을 넣어놨다고 해서 무조건 모든 애플리케이션이 다 구성정보로 쓰는 것이 아닌 후보로잡고 그 중 어떤 것들이 사용되게 할 것인지는 스마트한 방법으로 결정되게 할 것이므로 후보라고 부르는 것임

image.png