해결된 질문
작성
·
325
1
[질문 내용]
스프링 컨테이너에 스프링 빈을 등록 할때 등록이 되는 빈들은 스프링 컨테이너가 관리해줬으면 하는 객체들을 저장하는 거다. 그리고 스프링 컨테이너에 스프링 빈을 등록하는 가장 큰 이유는 의존관계 주입을 스프링 컨테이너에 맡겨서 좋은 객체지향 약속들을(OCP, DIP) 지키기 위해서다.
스프링 빈이 등록 될때 키 : 값 => 빈 이름 : 빈 객체로 저장이 된다. 스프링 빈에 등록을 할때는 @Configuration과 @Bean을 이용해서 수동으로 등록을 할 수 있고 @ComponetScan을 사용해서 @Componet, @Service, @Controller, @Repository가 붙은 클래스들을 자동으로 등록을 할 수가 있다.
수동으로 등록을 할때에는 빈 이름은 메소드 이름이 빈 객체는 해당 메소드가 반환하는 객체가 자동으로 등록을 할때에는 빈 이름은 클래스 이름이(클래스 이름 맨 앞에는 소문자) 빈 객체는 해당 클래스의 객체가 저장이 된다.
수동으로 등록 할때 주의 할 점은 @Bean만 쓰면 스프링 빈으로 등록이 되지만 싱글톤으로 관리 되지는 않는다 싱글톤으로 관리 되기 위해서는 @Configuration과 @Bean을 같이 써야 한다.
감사합니다.