ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
// getBean(메서드 명, 메서드가 반환하는 객체의 타입) or getBean(메서드가 반환하는 객체의 타입)
MemberService memberService = applicationContext.getBean("memberService", MemberService.class);
프로젝트가 실행되면 @Configuration이 등록된 클래스 (=AppConfig) 에서 @Bean 이 달린 모든 메서드를 찾아 실행시킨 후 반환된 객체를 스프링 컨테이너에 등록해둔다. (스프링 컨테이너 == ApplicationContext)
이때 저장되는 객체의 이름은 호출된 메서드의 이름으로 한다. 또는 @Bean(name = "~~") 로 직접 설정도 가능하다.
(key : value == 메서드명 : 생성된 객체, 빈의 이름이 겹치지 않도록 해야한다)
'김영한님 스프링 강의 정리 > 핵심원리 기본편' 카테고리의 다른 글
컴포넌트 스캔 - @Component, @Autowired, @Qualifier (0) | 2021.01.09 |
---|---|
@Configuration과 싱글톤 패턴 (0) | 2021.01.08 |
싱글톤 컨테이너 (0) | 2021.01.08 |
컨테이너에 등록된 Bean 모두 조회 (0) | 2021.01.07 |
SOLID : 좋은 객체 지향 설계의 5가지 원칙 (0) | 2021.01.01 |