[ 섹션 5 ]
스프링에 대해 더 집중 탐구해보자
# 1. 스프링 컨테이너 생성
스프링 컨테이너 : 스프링 프레임 워크의 핵심 컴포넌트
두가지 방식으로 생성가능
XML 기반으로 생성 가능 | 애노테이션 기반으로 생성 가능(ex. AppConfig) |
<생성 과정>
(1) 스프링 컨테이너 생성
new를 활용하여 생성한다.
*중요* 스프링 컨테이너를 생성 시 구성 정보를 지정해야한다
->우리는 AppConfig를 통해 구성 정보를 지정해주었다.
(2) 스프링 빈 등록
비어있는 스프링 빈을 채운다.
이 빈 이름으로는 메서드 이름을 사용하며 직접 부여가 가능하다
*중요* 이름이 항상 다른 이름이어야 한다(그러지 않으면 오류가 발생함)
(3) 스프링 빈 의존 관계 준비
지금 빈에 각 메서드를 주입하면 서로의 관계가 정해지지 않은채 존재한다
(4) 각 빈 의존관계 주입
설정 정보를 참고해서 의존관계를 주입함
#2. 컨테이너에 등록된 모든 빈 조회
컨테이너 내 생성된 빈이 무엇이 있는지 조회하는 코드이다.
(간략한 코드 설명)
ac.getBeanDefinitionNames() : 스프링에 있는 모든 빈을 조회
ac.getBean() : 빈 이름으로 빈 객체(인스턴스)를 조회함
#3. 스프링 빈 조회(기본)
스프링 빈을 조회하는 3가지 방법
1. 빈이름으로 조회 (findBeanByName)
2. 이름 없이 타입만으로 조회->인터페이스를 조회(findBeanByType)
3. 구체 타입으로 조회 (findBeanByName2)
#4. 스프링 빈 조회 - 예외) 동일한 타입이 둘 이상일경우
빈 조회를 할때 동일한 타입이 둘 이상이면
! ! 오류 발생 ! !
<예시 코드>
이미 만들어놓은 AppConfig에 오류를 넣는 대신 새로운 config를 만든다. 그리고 겹치는 타입의 스프링 빈을 생성
겹치는 타입을 System.out.println으로 배출한다
위 configuration에서 memberRepository가 겹침
즉) 1. 겹치는 타입의 빈을 찾고
2. 찾은 빈의 이름을 지정한다
3. 찾은 빈의 타입을 조회한다
#5. 스프링 빈 - 상속관계 (중요)
기본 원칙)부모 빈을 조회 시 부모의 모든 자식도 모두 조회할 수 있다
<그림 예시>
1번을 조회시 1,2,3,4,5,6,7 모두 조회됨
<확인 코드>
상속관계 조회 가능
1. 중복 오류 확인
2. 빈 이름 지정
3. 하위 타입으로 조회
4. 하위 타입이 아닌 부모 타입 조회
5. 부모 타입으로 모두 조회~
'WINK-(Web & App) > Spring Boot 스터디' 카테고리의 다른 글
[2025 1학기 스프링부트 스터디] 장민주 #6주차 (1) | 2025.05.20 |
---|---|
[2025 1학기 스프링부트 스터디] 석준환 #6주차 (0) | 2025.05.20 |
[2025 1학기 스프링 부트 스터디] 남윤찬 #6주차 (0) | 2025.05.19 |
[2025 1학기 스프링 부트 스터디] 김민서 #6주차 (0) | 2025.05.18 |
[2025 1학기 스프링부트 스터디] 고윤정 #6주차 (2) | 2025.05.18 |