스프링 빈이란, 스프링 컨테이너가 관리하는 객체를 의미한다.
스프링 빈을 등록한다는 의미는
스프링 부트에서는 객체를 생성하는 것이 아닌 스프링컨테이너에 등록하여 관리한다. 이렇게 등록 된 객체(스프링 빈)는 애플리케이션 실행 중에 필요할 때 자동으로 주입(DI)되어 사용할 수 있다.
스프링 빈 등록 방법
어노테이션을 사용한 자동 등록(컴포넌트 스캔)
- @Component, @Service, @Repository, @Controller, @RestController 등의 어노테이션을 사용하면 해당 클래스가 자동으로 빈으로 등록이 된다.
- 컴포넌트 스캔을 통해 특정 패키지 이하의 클래스들을 자동으로 찾아서 등록한다.
Java Config를 사용한 수동 등록 (@Bean)
- @Configuration이 붙은 클래스 내부에서 @Bean을 사용하면 직접 빈을 생성하고 등록할 수 있다
- 특정한 객체를 직접 생성해서 등록하고 싶을 때 유용하다.
즉, 스프링 빈으로 등록한다는 것은, 스프링 컨테이너가 객체를 직접 관리하도록 하는 것
수동 빈 등록과 자동 빈 등록을 둘 다 같은 이름으로 등록을 한다면, 수동 빈 등록이 우선권을 가지게 된다.
충돌이 발생하면 오류가 나니 조심!