728x90
우리가 만든 라이브러리를 사용해 주는 고마운 고객 개발자를 위해, 프로젝트에 라이브러리를 추가만 하면 모든 구성이 자동으로 처리되도록 해 보자.. 쉽게 이야기해서 스프링 빈들이 자동으로 등록되는 것이다. 여기에 추가로 memory=on 옵션도 적용할 수 있게 해보자.
memory-v1 프로젝트를 복사해서 memory-v2를 만들자.
settings.gradle - 수정
rootProject.name = 'memory-v2'
- 해당 내용을 변경 시 프로젝트가 memory-v1으로 보이던 게 memory-v2로 보인다.
자동 구성 추가
MemoryAutoConfig
@AutoConfiguration
@ConditionalOnProperty(name = "memory", havingValue = "on")
public class MemoryAutoConfig {
@Bean
public MemoryController memoryController() {
return new MemoryController(memoryFinder());
}
@Bean
public MemoryFinder memoryFinder() {
return new MemoryFinder();
}
}
- @AutoConfiguration
- 스프링 부트가 제공하는 자동 구성 기능을 적용할 때 사용하는 애노테이션이다.
- @ConditionalOnProperty
- memory=on 이라는 환경 정보가 있을 때 라이브러리를 적용한다. (스프링 빈을 등록한다.)
- 라이브러리를 가지고 있더라도 상황에 따라서 해당 기능을 켜고 끌 수 있게 유연한 기능을 제공한다.
자동 구성 대상 지정
스프링 부트 자동 구성을 적용하려면, 다음 파일에 자동 구성 대상을 꼭 지정해주어야 한다.
파일 생성: src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
memory.MemoryAutoConfig
- 앞서 만든 자동 구성인 memory.MemoryAutoConfig 를 패키지를 포함해서 지정해준다.
- 스프링 부트는 시작 시점에 org.springframework.boot.autoconfigure.AutoConfiguration.imports 의 정보를 읽어서 자동 구성으로 사용한다. 따라서 내부에 있는 MemoryAutoConfig 가 자동으로 실행된다.
빌드하기
- ./gradlew clean build
- build/libs/memory-v2.jar(빌드 결과)
728x90
'스프링 부트(핵심 원리와 활용)' 카테고리의 다른 글
| Ch04. 자동 구성(Auto Configuration) - 자동 구성 이해 (0) | 2023.03.10 |
|---|---|
| Ch04. 자동 구성(Auto Configuration) - 자동 구성 라이브러리 사용하기(1) (0) | 2023.03.10 |
| Ch04. 자동 구성(Auto Configuration) - 순수 라이브러리 사용하기 (0) | 2023.03.10 |
| Ch04. 자동 구성(Auto Configuration) - 순수 라이브러리 만들기 (0) | 2023.03.10 |
| Ch04. 자동 구성(Auto Configuration) - @Conditional (0) | 2023.03.09 |