49.2 자동 구성 후보 찾기 by sh

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

circle-info

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

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

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

[Note]

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

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

circle-info

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

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

[참조] http://wonwoo.ml/index.php/post/1599arrow-up-right

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

Last updated

Was this helpful?