본문 바로가기
강의 실습/스프링 핵심 원리 - 기본편

스프링 컨테이너 생성

by jint 2026. 4. 7.

- ApplicationContext.java

// 스프링 컨테이너 생성
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);


· ApplicationContext 는 스프링 컨테이너이자 인터페이스로, XML 기반으로 만들 수 있고, 어노테이션 기반의 자바 설정 클래스로 만들 수 있다. (XML 잘 안쓰고 어노테이션 기반 자바 설정 클래스를 주로 씀)
-> AppConfig 같은 어노테이션 기반 자바 설정 클래스를 이용해 스프링 컨테이너를 생성했다. (DI 컨테이너?)

· 자바 설정 클래스 기반으로 스프링 컨테이너(ApplicationContext) 생성
new AnnotationConfigApplicationContext(AppConfig.class); 클래스는 ApplicationContext 인터페이스 구현체

* 참고
스프링 컨테이너를 부를 때 BeanFactory, ApplicationContext 로 구분한다.
BeanFactory 를 직접 사용하는 경우는 거의 없으므로, 일반적으로 ApplicationContext 를 스프링 컨체이너라고 한다.


1. 스프링 컨테이너 생성 과정
1) 스프링 컨테이너 생성

스프링 컨테이너 생성


스프링 컨테이너 생성시 구성 정보 지정 : AppConfig.class 를 구성 정보로 지정
-> new AnnotationConfigApplicationContext(AppConfig.class);

2) 스프링 빈 등록

스프링 빈 등록


스프링 컨테이너는 파라미터로 넘어온 설정 클래스 정보를 사용하여 스프링 빈 등록

빈 이름)
- 메서드 이름 사용
- name 속성을 통해 직접 부여 가능
  ex) @Bean(name="memberService2")

※ 주의
빈 이름은 항상 다른 이름을 부여해야 한다.
같은 이름 부여시, 다른 빈이 무시되거나, 기존 빈을 덮어버리거나, 설정에 따라 오류 발생
-> 실무에서는 단순하고 명확하게!

3) 스프링 빈 의존관계 설정 - 준비

스프링 빈 의존관계 설정 - 준비


4) 스프링 빈 의존관계 설정 - 완료

스프링 빈 의존관계 설정 - 완료


스프링 컨테이너는 파라미터로 넘어온 설정 클래스 정보를 참고하여 의존관계 주입(DI)
(단순 자바 코드 호출로 보이지만, 차이 있음 - 싱글톤 컨테이너 개념)

* 참고
스프링은 빈 생성과 의존관계 주입하는 단계가 나누어져 있다.
위 예시처럼 자바 코드로 스프링 빈을 등록하면, 생성자를 호출하면서 의존관계 주입도 한 번에 처리된다.
(의존관계 자동 주입 개념)


2. 정리
스프링 컨테이너를 생성하고, 설정(구성) 정보를 참고해서 스프링 빈도 등록하고, 의존관계도 설정했다.


참고링크 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8?cid=325969

 

스프링 핵심 원리 - 기본편| 김영한 - 인프런 강의

현재 평점 5.0점 수강생 49,532명인 강의를 만나보세요. 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 스프링 기본 기능, 스프

www.inflearn.com

댓글