스프링 컨테이너와 스프링 빈

이름이름·2022년 10월 30일
0

Spring

목록 보기
4/20

스프링 컨테이너 등록(앞 내용과 이어짐)

ApplicationContext 를 스프링 컨테이너라 한다.
ApplicationContext 는 인터페이스이다

  • 스프링 컨테이너는 설정 정보를 참고해서 의존 관계를 주입(DI)한다

컨테이너에 등록된 빈 조회

모든 빈 조회

제대로 등록이 되었는지 조회를 해본다

test>hello.core>beanfind>ApplicationContextInfoTest에
아래의 코드를 작성한다
ac.getBeanDefinitionNames() : 스프링에 등록된 모든 빈 이름을 조회한다.
ac.getBean() : 빈 이름으로 빈 객체(인스턴스)를 조회한다.

실행해보면 아래와 같이 빈들이 잘 등록된 것을 확인할 수 있다

내가 등록한 빈 조회

저기 빨간 부분을 바꿔주면 직접등록한 빈만 나오거나
스프링이 내부에서 사용하는 빈만 나오게 할 수 있다

이 외에도
부모 타입으로 조회하면, 자식 타입도 함께 조회된다 등등
여러가지가 있는데 실제로 빈 조회는 잘 쓰이지 않고 필요할 때 찾아보면 될 것 같아서 따로 정리는 하지 않기로 했다

BeanFactory

스프링 컨테이너의 최상위 인터페이스
우리가 사용한 Application이 이 친구를 상속받아서 사용한것임
즉, 지금까지 우리가 사용했던 대부분의 기능은 BeanFactory가 제공하는 기능이다

스프링 컨테이너의 유연성

  • 좌측이 지금까지 한 어노테이션 방식이고 xml,xxx 등 많은 형식의 설정 정보를 받을 수 있게 유연하게 설계되어있음
    어떻게 이렇게 유연하게 받을 수 있을까?

BinDefinition

  • 스프링이 다양한 설정 정보를 BeanDefinition으로 추상화 해서 제공한다는 것만 알아두면 충분하다
profile
공부 정리

0개의 댓글