스프링 빈(Spring Bean)이란?
스프링 IoC(Inversion of Control) 컨테이너가 관리하는 객체
직접 의존성을 주입하기 위해서는 의존관계를 모두 파악해야 한다. (어플리케이션 규모가 커지면 거의 불가능에 가까운 일)
스프링 IoC 컨테이너에서 의존성을 관리해 줌
싱글턴은 생성자를 Private로 설정해야 하는데 이렇게 되면 객체지향의 장점인 다형성을 사용하지 못하게 된다. 즉 해당 객체는 상속을 사용하지 못함. 또한 안정성이 중요한 프로젝트에서 간이테스트가 어렵다. 실행순서에 따라 결과가 달라지기 때문임.
위 그림에서 Bean은 상태를 가지면 안된다(?).
물론 상태를 가지는 Bean도 있다.
*의존성이 여러개일 때 우선순위
생성자 -> 필드 -> setter
*주입 대상이 여러 개일 때 우선순위
타입 -> @Qualifier -> @Primary -> 변수명
(1) 스프링 빈이 왜 필요할까?
(2) 스프링 IoC 컨테이너는 왜 빈을 관리할까?