스프링 컨테이너 종류 스프링은 BeanFactory와 ApplicationContext의 두 가지 타입의 컨테이너를 제공한다. 스프링에서 제공하는 부가 기능을 다 쓰려면 BeanFactory 대신 ApplicationContext를 사용하는 것이 좋다. ApplicationContext와 빈 정의 스프링에서는 ApplicationConntext가 DI 컨테이너 역할을 한다. ApplicationContext context = new ApplicationContext(AppConfig.class); UserService userService = context.getBean(UserService.class); 위의 AppConfig.class는 DI 컨테이너에서 설정 파일 역할을 한다. 두번 째 줄은 DI 컨테이너에서 UserService 인스턴스를 가져오는 방법중 하나이다. <AppConfig.class> @Configuration과 @Bean 애너테이션을 사용해 DI 컨테이너에 컴포넌트를 등록한다. 애플리케이션은 DI 컨테이너에 있는 빈을 ApplicationContext의 인스턴스를 통해 가져올 수 있다. 스프링에서 DI 컨테이너에 등록하는 컴포넌트를 빈(Bean) 이라 한다. DI 컨테이너에서 빈 가져오는 방법 UserService service = context.getBean(UserService.class); UserService service = context.getBean(“userService”, UserService.class); // 타입에 빈이 여러개 있을때 id를 구분 UserService service = (UserService)context.getBean(“userService”); // 반환값이 Object라 형변환 해야 함. 빈 설정 방법 자바 기반 설정방식 : 자바 클래스에 @Configuration 애노테이션을 메서드엔 @