직전 포스팅에서 Application에서 Bean 설정을 했지만,, AutoConfigure에서 설정된 그 값이 그대로 출력되는 현상을 발견했다. 이러한 현상이 발생한 원인을 한번 더 언급하자면, Component Scan을 통해서 직접 설정한 값이 Bean으로 등록된다고 하더라도 이후에 진행되는 EnableAutoConfigure에서 추가적인 Bean 등록이 이루어져 직접 설정한 Bean의 값이 Overwrite 되었기 때문이다. 따라서, 우리는 이 값이 이미 Bean으로 등록되어 있을 때, AutoConfigure에서 Bean으로 등록하지 않도록 하는 @ConditionalOnMissingBean Annotation을 추가적으로 달아줌으로써 해결할 수 있다. @Configuration public c..
저번 포스팅에서 살펴봤던 자동 설정을 실습을 통하여 살펴보고자 한다. 먼저, AutoConfigure를 제공할 프로젝트를 생성하고 아래의 과정을 진행한다. (물론 해당 의존성을 주입받을 프로젝트도 준비하자.) Step 1. Creation AutoConfigure Project 1. pom.xml chany spring-boot-starter 1.0-SNAPSHOT org.springframework.boot spring-boot-autoconfigure org.springframework.boot spring-boot-autoconfigure-processor true org.springframework.boot spring-boot-configuration-processor true org.sprin..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/YjNFb/btqYTNVJ2X1/jKpLJCVcjYmp0M7lCKRgo1/img.png)
Spring Boot에서 Bean은 총 2단계로 등록이 된다. 그 내용을 살펴보기 전에 먼저, @SpringBootApplication을 확인해보면 아래와 같은 구조로 되어 있는 것을 볼 수 있다. @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = Auto..