♪ 학습 내용
스프링 컨테이너의 생성과정과 빈 조회
* 스프링 컨테이너 생성
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
ApplicationContext : 스프링 컨테이너이자 인터페이스
즉, new 이하의 클래스는 ApplicationContext 인터페이스의 구현체.
과정
1. 스프링 컨테이너 생성
구성 정보를 지정하여 컨테이너 생성한다
(코드에서는 AppConfig.class를 파라미터로 넘겨줌으로써 지정함)
2. 스프링 빈 등록
@Configuration과 파라미터로 넘김으로써 구성 정보로 지정한 클래스의 @Bean 전부 호출
호출 후 반환되는 객체를 스프링 빈 저장소에 등록한다
Bean 이름 = 메서드 이름을 사용하며, 항상 다른 이름을 부여해야한다
@Bean(name=" ")을 통해 이름 부여하기도 가능하지만 권장하지 않음
3. 스프링 빈 의존관계 설정
설정 정보(AppConfig)를 참고하여 의존관계 주입
스프링은 빈 생성 / 의존관계 주입 단계로 나누어지지만 자바 코드로 스프링 빈 등록하면 한번에 처리된다
* 컨테이너 내 모든 빈 조회
applicationContext = ac
ac.getBeanDefinitionNames() : 스프링에 등록된 모든 빈의 이름 조회
-> 배열에 저장 후 for 문을 이용해 빈들을 차례 차례 꺼내 출력했다.
ac.getBean() : 빈 이름으로 빈 객체 조회
위 사진을 확인하면 내가 등록한 빈 이외에의 것도 확인 가능하다
스프링 내부에서 사용하는 빈.
만약 내가 등록한 빈만 확인하고 싶다면 빈.getRole()을 이용하여 아래와 비교 출력
- ROLE_APPLICATION : 내가 정의한 빈
- ROLE_INFRASTRUCTURE : 내부에서 사용하는 빈
* 스프링 빈 기본 조회
.getBean()을 이용한다
- 빈 이름과 타입을 인자로 조회
- 빈 이름 없이 타입만을 인자로 조회
- 빈의 구체 타입으로 조회 (구현에 의존하기 때문에 권장하지 않는다)
♪ 다음 학습 내용
' 타입으로 조회 시에 만약 동일 타입의 스프링 빈이 둘 이상 존재한다면 ? ' 에 대해 학습
스프링 빈 조회(상속)
'Dev > Spring' 카테고리의 다른 글
[Spring 기본] 스프링 컨테이너와 빈 (3) (0) | 2022.11.07 |
---|---|
[Spring 기본] 스프링 컨테이너와 빈 (2) (0) | 2022.11.06 |
[Spring 기본] 객체d 지향 원리 적용 (4) (0) | 2022.11.01 |
[Spring 기본] 객체 지향 원리 적용 (3) (0) | 2022.11.01 |
[Spring 기본] 객체 지향 원리 적용 (2) (0) | 2022.10.31 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!