Spring

Spring Container의 생성 과정

dev-rootable 2023. 5. 4. 15:50

1. 스프링 컨테이너를 생성한다.

 

스프링 컨테이너를 생성할 때는 @Configuration 애노테이션을 붙인 설정(구성) 파일을 지정해야 한다.

 - key: 빈 이름

 - value: 빈 객체

출처: 스프링 핵심 원리 - 기본편 by 김영한

 

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);

 

2. 스프링 빈 등록

 

스프링 컨테이너는 파라미터로 넘어 온 설정 클래스 정보를 사용해서 스프링 빈을 등록한다.

 - 메서드 명 : Bean 이름 (직접 부여 가능 -> @Bean(name = "memberService2"))

 - 반환 객체: Bean 객체

 

스프링 컨테이너는 설정 파일에 대해 자바, XML 형식을 모두 지원한다. 이것은 BeanDefinition 이라는 추상화를 통해 가능하다. 스프링 컨테이너는 오직 @Bean, <bean> 당 각각 하나씩 생성되는 메타 정보 BeanDefinition을 기반으로 스프링 빈을 생성하므로 구체적인 설정 형식을 몰라도 된다.
=> 스프링은 다양한 형식의 설정 파일을 BeanDefinition으로 추상화해서 사용한다.

 

 

출처: 스프링 핵심 원리 - 기본편 by 김영한

 

📢 빈 이름은 중복되면 안됨

 

출처: 스프링 핵심 원리 - 기본편 by 김영한

 

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

 

출처: 스프링 핵심 원리 - 기본편 by 김영한

 

4. 스프링 빈 의존 관계 설정 - 완료

 

출처: 스프링 핵심 원리 - 기본편 by 김영한

 

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

 2) 자바 코드로 스프링 빈 등록 ➡ 생성자를 호출하면서 DI도 한 번에 처리됨

 3) 즉, 스프링 빈 생성과 DI가 한 번에 이루어진다는 것

 

Reference:

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런

www.inflearn.com