[백엔드] 스프링 컴포넌트 스캔과 Bean 등록하기 및 DI

·
CS/백엔드
스프링은 스프링 컨테이너를 통해서 의존성 주입 기능을 지원한다. 컨테이너에 들어가는 객체들을 빈이라고 칭하고, 스프링은 빈으로 등록할 객체를 찾은 뒤에 컨테이너에 등록하고, 필요한 경우 컨테이너에서 빈을 빼오는 일을 수행한다. 이 과정은 그냥 애플리케이션을 시작하면 자동으로 이루어지지만, 어떤 매커니즘으로 이루어지는지 궁금했기 때문에, 조사해보고자한다. 코드 중에서 불필요한 부분은 생략했다. 주로 내가 공부하려는 기능과 무관한 코드거나, 클래스 사전설정 코드거나, 로그를 다루는 로직이다.Bean 등록과정먼저 ApplicationContext에 Bean을 등록하기 위해서는 두 가지 과정이 필요하다. Bean은 스프링 컨테이너에 등록될 때 Bean만 등록되는 것이 아니라 BeanDefinition이라고하는,..