본문 바로가기
Learning-log/Spring & JPA

(스프링 핵심 원리 - 기본편) 4-(1)스프링 컨테이너 생성, (2)컨테이너에 등록된 모든 빈 조회, (3) 스프링 빈 조회-기본

by why제곱 2023. 4. 1.

- 스프링 컨테이너 생성

  • ApplicationContext를 스프링 컨테이너라 함
  • ApplicationContext는 인터페이스 => 다형성 적용 가능
//스프링 컨테이너
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
  • ApplicationContext를 구현한 것 중의 하나가 AnnotationConfigApplicationContext임.
  • 스프링컨테이너는 XML기반으로도, 에노테이션 기반의 자바 설정 클래스로도 만들 수 있음( 요즘엔 에노테이션 위주)
  • 스프링 컨테이너를 부를 때, 'BeanFactory', 'ApplicationContext'로 구분해서 말함. 다만, 'BeanFactory'를 직접 사용하는 경우가 거의 없어 대부분 후자를 스프링 컨테이너라고 함.
  • AppConfig.class : 스프링컨테이너를 생성할 때 구성 정보를 지정해준 것.

 

  • 주의 !! 빈 이름은 항상 다른 이름을 부여해야 함. 같은 이름을 부여하면 다른 빈이 무시되거나 기존 빈을 덮어버리거나 설정에 따라 오류 발생 !! 
  • 실무에서는 헷갈리게 개발하면 안된다 ! 무조건 단순하고 명확하게 !! 

 

-  컨테이너에 등록된 모든 빈 조회

 

* iter 입력 후 Tab  : list나 배열이 있을 때 이를 사용하면 for문이 자동으로 완성 

 

  • 테스트 결과

 

  • 내가 등록한 것만 조회(스프링 내부에서 사용하는 빈 제외하고 내가 등록한 빈만!) 

  • 결과

 

  • Role 
    • ROLE_APPLICATION : 사용자가 정의한 빈
    • ROLE_INFRASTRUCTURE : 스프링 내부에서 사용하는 

- 스프링 빈 조회-기본

  • 가장 간단한 방법 : getbean(빈 이름, 타입) 또는 getbean(타입)

  • 빈 이름으로 조회 및 결과검증은 Assertions로 하기

  • 타입으로 조회

  • 구체적인 타입으로 조회하는 경우

  • 빈 이름으로 조회 = > 오류가 나야 성공하도록 코드 짜기