20210115 TIL

2022. 1. 15. 19:15

ㅇTIL

1.Spring

<인프런 '김영한 님' 강의- 스프링 핵심원리>

  • 스프링 빈 설정 메타 정보-BeanDefinition
    • BeanDefinition은 인터페이스이기 때문에, 추상에 의존한다.
    • @Bean, <Bean/> 당 각각 하나씩의 메타정보가 생성되며, 스프링 컨테이너는 이 메타정보를 기반으로 스프링 빈을 생성한다.
  • <Bean Definition을 통해 스프링 컨테이너에 등록되는 과정>
1. 스프링 부트 시작 시, @Configuration AppConfig 클래스를 자동으로 스캔하여 스프링 컨테이너에 포함 시킨다.

2. ApplicationContext 의 구현체인 AnnotationApplicationContext가 AppConfig.class 정보를 AnnotatedReader를 통해 읽게 되고, BeanDefinition을 생성한다.

3. BeanDefinition을 읽어서 빈 객체를 생성하고, 내부 빈 저장소에 저장한다. 이때 @AutoWired로 설정된 메서드는 빈 생성 이후 의존관계 주입이 발생하고, 생성자의 경우 빈 생성과 동시에 의존관계 주입(DI)가 발생한다.

4. 의존관계 주입 단계에서 생성방식에 따라 의존관계를 다르게 설정해주는 데, Bean Factory Interface의 구현체인 AnnotationContext로 설정했기 때문에 Bean Factory Method 방식으로 빈 객체가 생성된다.

ㅇ회고

  • 이론이 점점 어려워지고, 이해가 되지 않는 부분이 기하급수적으로 늘어나고 있다. 너무 한번에 이해하려고 하지말고, 코드와 이론을 함께 병행하면서 천천히, 그리고 올바르게 이해하도록 노력해야겠다.
  • 도전하고 많이 실패해보기. 실패를 통해 성장하기.

ㅇ내일 할일

  • 스프링<싱글톤 패턴 및 컨테이너> 강의 듣고 정리
  • 국민취업지원제도 알아보기
  •  
 

'TIL' 카테고리의 다른 글

20210118 TIL(spring-componant)  (0) 2022.01.18
20210116 ~ 20210117 TIL(Spring)  (0) 2022.01.17
20220112 TIL  (0) 2022.01.12
20210111 TIL(Spring)  (0) 2022.01.11
20220109 - 20220110 TIL(Django, Spring)  (0) 2022.01.11

BELATED ARTICLES

more