study11. 스프링 컨테이너와 스프링 빈, 스프링 빈 조회

윤광팔·2022년 2월 13일
0

인프런의 '스프링 핵심 원리 (기본편)' 을 듣고 해당 내용을 정리한 포스트 입니다.
강의 바로가기


스프링 컨테이너 생성

  • ApplicationContext를 스프링 컨테이너라 한다.
    BeanFactory도 있으나 거의 사용하는 경우 없음

  • ApplicationContext는 인터페이스이다.
    ApplicationContext를 구현한 구현체 중 하나가 AnnotationConfigApplicationContext이다.
    -> 다형성 만족!

  • 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 에노테이션 기반의 자바 설정 클래스로 만들 수 있다.




스프링 컨테이너 생성 과정

1. 스프링 컨테이너 생성

2. 스프링 빈 등록


빈 이름은 메소드 명을 사용하나, 직접 부여할 수도 있다.
항상 다른 이름을 부여해야 한다.

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



동적인 객체 인스턴스 의존관계까지 연결해 줌

스프링은 빈을 생성하고 의존관계를 주입하는 단계가 나누어져 있다.
그러나 자바 코드로 스프링 빈을 등록하면, 생성자를 호출하면서 의존관계 주입도 한번에 처리된다.
실제 스프링의 라이프 사이클은 두 단계가 나누어져 있음. 뒤의 자동 의존관계 주입 볼때 참고하자!


스프링의 모든 빈 출력하기


위쪽의 빈들은 스프링 내부적으로 생성되는 빈

Role ROLE_APPLICATION: 직접 등록한 애플리케이션 빈
Role ROLE_INFRASTRUCTURE: 스프링이 내부에서 사용하는 빈

스프링 빈 조회


오른쪽의 로직을 실행 시, 왼쪽의 에러가 발생해야 한다는 테스트 코드\

상속관계

부모 타입으로 조회하면, 자식 타입도 함께 조회한다.
모든 자바객체의 최고 부모인 'Obejct' 타입으로 조회하면, 모든 스프링 빈으로 조회한다.

0개의 댓글

관련 채용 정보