본문 바로가기
JAVA & SPRING

스프링 핵심 원리 - 4일차(스프링 컨테이너 빈)

by 눈오는1월 2023. 7. 27.
728x90

스프링 컨테이너 생성할때 치는 코드는

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);

이 코드에서

ApplicationContext -> 인터페이스 이며 스프링 컨테이너임

스프링 컨테이너를 생성할 때 구성정보를 지정해줘야하는데 위 코드에서 해당 부분을 맡는 역할이 AppConfig.class 이다.

저렇게 하면 AppConfig.class에 있는 값들이 스프링 빈 저장소에 메소드가 빈 이름에 생성 객체가 빈 객체에 들어가지게 된다.

(빈 이름을 변경하고 싶다면 @Bean(name = "원하는 이름")  이런식으로 어노테이션을 붙여서 지정할 수도 있음 단, 빈 이름은 항상 다른 이름을 꼭 부여해줘야 한다.

 

AppConfig를 보고 스프링컨테이너는 의존관계를 주입함

 

스프링 빈 조회에서 부모타입으로 조회시 자식 타입도 함께 조회한다. 부모타입 조회시 자식 타입도 딸려온다고 생각하면됨 그래서 만약 object 타입으로 조회하면 모든 스프링 빈 조회 가능

 

BeanFactory 와 ApplicationContext

BeanFactory는 위 그림처럼 최상위 인터페이스이다

BeanFactory의 역할은 스프링 빈을 관리하고 조회하는 역할을 함

ApplicationContext 는 Bean을 상속받고 또 수많은 기능을 함

 

BeanDefinition라는 추상화가 있는데 이게 다양한 설정 형식을 지원해줌(xml 가능 java code 가능)

스프링 컨테이너는 자바 코드인지 xml인지 모르고 오직 BeanDefinition만 알면됨

 

 

728x90

'JAVA & SPRING' 카테고리의 다른 글

Spring Mysql 연동  (0) 2023.08.07