Spring/스프링 핵심 원리 - 기본편

[스프링 컨테이너와 스프링 빈] 스프링 컨테이너 생성

alsruds 2023. 11. 20. 18:17
🧐강의🧐
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/dashboard

 

✅ 컨테이너 : 사용하는 객체들을 담고 있음

 

스프링 컨테이너 만드는 방법

· 애노테이션 기반 자바 설정 클래스 → AppConfig 사용

· XML 기반

 

스프링 컨테이너 생성 과정

1. 스프링 컨테이너 생성 (자바 설정 클래스 기반)

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);

➡️ Application Context : 인터페이스 - 스프링 컨테이너

➡️ AnnotationConfigApplicationContext : 구현체

➡️ AppConfig.class : 스프링 컨테이너 생성 시 구성 정보 저장

 

2. 스프링 빈 등록

· 스프링 컨테이너가 파라미터로 넘어온 설정 클래스 정보로 스프링 빈 등록

· 빈 이름 = 메서드 이름

· 빈 이름 직접 부여 가능 (ex. @Bean(name = "memberService2"))

 

⚠️주의⚠️
빈 이름은 항상 다른 이름을 부여해야 한다.
같은 이름 부여 시, 다른 빈이 무시되거나, 기존 빈을 덮어버리거나, 설정에 따라 오류가 발생한다. 

 

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

 

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

· 스프링 컨테이너는 설정 정보를 참고하여 의존 관계 주입 (DI)

 

참고
스프링은 빈을 생성하고, 의존 관계를 주입하는 단계가 나누어져 있다.
자바 코드로 스프링 빈을 등록하면, 생성자를 호출하면서 의존 관계 주입도 한 번에 처리된다.
정리
- 스프링 컨테이너 생성
- 설정(구성) 정보를 이용하여 스프링 빈 등록
- 의존 관계 설정