49.2 자동 구성 후보 찾기 by sh

스프링 부트는 퍼블리시된 jar 파일 내의 META-INF/spring.factories 파일의 존재 여부를 검사합니다. 이 파일은 다음 예제와 같이 EnableAutoConfiguration 키 아래에 구성 클래스를 나열해야합니다.

자동 설정 기능 추가하는 방법?

[참조] https://javacan.tistory.com/entry/spring-boot-auto-configuration

1. 자동 설정 기능 제공 모듈 : 설정을 제공하는 @Configuration 적용 클래스 구현

2. 자동 설정 기능 제공 모듈 : spring.factories 파일 작성

3. 적용 : 자동 설정이 필요한 프로젝트에서 모듈에 대한 의존 추가

즉, 설정 클래스를 구현했다면 그 다음엔 spring.factories 파일에 설정 클래스를 지정해야 한다!

클래스 패스(메이븐이면 src/main/resource 폴더 아래에) 위치에 META-INF/spring.factories 파일 만들고, org.springframework.boot.autoconfigure.EnableAutoConfiguration 속성 값으로 자동 설정으로 사용할 클래스 값 적어주면 됨.

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.mycorp.libx.autoconfigure.LibXAutoConfiguration,\
com.mycorp.libx.autoconfigure.LibXWebAutoConfiguration

자동 구성은 그런 식으로만 로드 해야합니다. 구성 요소가 특정 패키지 공간에 정의되어 있고 구성 요소 검색 대상이 아닌지 확인하십시오. 또한 자동 구성 클래스에서 구성 요소 검색을 통해 추가 구성 요소를 찾을 수 없습니다. 특정 @Import를 대신 사용해야합니다.

구성을 특정 순서로 적용해야하는 경우 @AutoConfigureAfter 또는 @AutoConfigureBefore 어노테이션을 사용할 수 있습니다. 예를 들어 웹 특정 구성을 제공하는 경우 WebMvcAutoConfiguration 후에 클래스를 적용해야 할 수 있습니다.

자동 설정 라이브러리 만들 때 자주사용됨!

  • @AutoConfigureAfter : 속성 값으로 설정한 클래스 다음에 선언한 해당 클래스를 설정하는 거. @AutoConfigureBefore : 속성 값으로 설정한 클래스 이전에 선언한 해당 클래스를 설정하는 거.

[참조] http://wonwoo.ml/index.php/post/1599

서로에 대한 직접적인 지식이 없어야하는 특정 자동 구성을 순서화하려면 @AutoConfigureOrder를 사용할 수도 있습니다. 이 어노테이션은 일반 @Order 어노테이션과 동일한 의미를 갖지만 자동 구성 클래스에 대한 전용 순서를 제공합니다.

Last updated