스프링 부트의 AutoConfiguration 스프링 부트는 사용하는 라이브러리 중 필요한 빈을 자동으로 스프링 컨테이너에 등록해주는 AutoConfiguration 기능윽 제공함. 스프링 부트는 spring-boot-autoconfigure 라이브러리를 이용해 AutoConfiguration으로 등록이 필요한 스프링 빈 정보들을 모아둔다. @AutoConfiguration // AutoConfigurationImportSelector.class protected List getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) { List configurations = ImportCandidates.l..
자동 구성 이해1 - 스프링 부트의 동작 스프링 부트는 다음 경로에 있는 파일을 읽어서 스프링 부트 자동 구성으로 사용한다. resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 직접 만든 memory-v2 라이브러리와 spring-boot-autoconfigure 라이브러리의 위 파일을 살펴보면 스프링 부트의 자동 구성을 확인할 수 있다. // spring-boot-autoconfigure의 org.springframework.boot.autoconfigure.AutoConfiguration.imports 파일 org.springframework.boot.autoconfigure.admin.Sp..
자동 구성 직접 만들기 - 기반 예제 자동 구성에 대해서 자세히 알아보기 위해 간단한 예제를 만들어보자. 실시간으로 자바의 메모리 사용량을 웹으로 확인할 수 있는 기능을 제공함. @Getter public class Memory { private Long used; private Long max; public Memory(Long used, Long max) { this.used = used; this.max = max; } @Override public String toString() { return "Memory{" + "used=" + used + ", max=" + max + '}'; } } @Slf4j public class MemoryFinder { public Memory get() { lo..
정리 외부 라이브러리를 직접 만들고 그것을 프로젝트에 라이브러리로 불러서 적용해봄. 그런데 라이브러리를 사용하는 클라이언트 개발자 입장을 생각해보면, 라이브러리 내부에 어떤 빈을 등록해야하는지 알아야 하고, 그것을 하나씩 다 빈으로 등록해야 함. 만약 초기 설정이 복잡하다면, 사용자 입장에서는 상당히 귀찮은 작업이 될 수 있음. 이런 부분을 자동으로 처리해주는 것이 스프링 부트의 Auto Configuration임. 순수 라이브러리 만들기 @AutoConfiguration을 이해하기 위해서는 라이브러리가 어떻게 사용되는지 이해가 필요하다. 앞서 생성한 Memory 패키지를 여러 곳에서 사용할 수 있도록 라이브러리로 만들어보자. 여기서는 순수 라이브러리를 만들어서, 특정 프로젝트에서 수동으로 스프링 빈으로..
요약 스프링 부트는 AutoConfiguration 기능을 제공함. 스프링부트가 제공하는 자동 구성 기능을 이해하려면 다음 두 가지 개념을 이해해야함. @Conditional : 특정 조건에 맞을 때 설정이 동작하도록 함. @AutoConfiguration : 자동 구성이 어떻게 동작하는지 내부 원리 이해. 스프링부트가 제공하는 자동 구성 기능을 이해하려면 다음 개념을 이해해야 함. @Conditional : 특정 조건에 맞을 때 설정이 동작하도록 함. @AutoConfiguration : 자동 구성이 어떻게 동작하는지 내부 원리 이해 자동구성 - 예제 만들기 @Slf4j @Configuration public class DBConfig { @Bean public DataSource dataSource(..