해결된 질문
작성
·
166
0
스프링부트를 기동시키면 @Configuration 에 의해 존재하는 모듈들을 참고하여 환경을 자동 구성하는 것으로 알고 있습니다. 하지만 우리가 자체로 제작한 imports 파일에 jetty 와 tomcat , dispatcher 가 를 작성하여 이의 조건에 따라 이를 구성하였는데 이건 스프링 부트 자체에서 해주는 일들과 충돌이 발생하지 않는 건지요?
만약 발생하지 않는다면 그 이유는
사용자가 설정한 환경이 먼저 구성되고
스프링 부트는 @ConditionalOnMissingBean 을 사용하여 사용자가 생성한 빈을 따로 생성하지 않기 때문인지요 ?
제 생각이 틀렸으면 정확한 지적 부탁드립니다. 감사합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴이에요. 스프링 부트의 @Configuration을 사용하여 자동으로 환경을 구성하게 되는데, 이에 사용자가 직접 imports 파일에 jetty, tomcat, dispatcher를 작성하여 조건에 따라 구성한다고 하셨는데요. 이렇게 사용자가 설정한 환경은 스프링 부트에서 제공하는 자동 구성과 충돌이 발생하지 않습니다.
스프링 부트의 자동 구성은 빈의 우선순위를 계산하고, 사용자가 설정한 빈이 이미 존재한다면 스프링 부트에서는 해당 빈을 생성하지 않습니다. 이를 위해 @ConditionalOnMissingBean 어노테이션을 사용합니다. 사용자가 설정한 빈이 우선적으로 생성되고, 스프링 부트에서는 @ConditionalOnMissingBean을 통해 사용자가 이미 생성한 빈이 존재하면 스프링 부트에서 해당 빈을 생성하지 않는 방식으로 처리됩니다.
만약 제가 말씀드린 내용이 부족하거나 틀린 부분이 있다면 지적해주시면 감사하겠습니다. 좋은 하루 되세요!