개요
•
Spring에서 Bean을 수동으로 등록하기 위해서 우리는 Configuration 클래스를 만들고 @Configuration 어노테이션을 추가한 뒤, @Bean을 이용해 수동으로 빈을 등록한다.
◦
이때 메소드의 이름으로 빈의 이름이 결정되므로 수동으로 등록 시, 중복된 이름이 존재하지 않도록 주의해야 한다.
◦
Spring 컨테이너는 @Configuration이 붙어있는 클래스를 빈으로 등록해두고 해당 클래스를 파싱하여 @Bean이 붙어있는 메소드를 찾아서 빈을 생성해준다.
역할
•
1차적으로는 Bean을 등록하기 위해서 사용한다.
◦
Bean을 등록할 때 해당 객체가 싱글톤 범위를 가지도록 보장해준다.
◦
Spring 컨테이너에서 Bean을 관리할 수 있게 해준다.
•
수동으로 빈을 등록해야하는 경우는 주로 다음과 같다.
◦
개발자가 제어하기에 불가능한 라이브러리를 활용할 때
◦
어플리케이션 전범위적으로 사용되는 클래스를 등록할 때
◦
다형성을 활용하여 특정 인터페이스의 여러 구현체를 등록해주어야할 때