본문 바로가기
반응형

Framework & Lib & API/스프링16

스프링 빈 생성 과정 분석 [3] - BeanFactoryPostProcessor, BeanPostProcessor 이전 포스팅에서 BeanDefinitionRegsitry와 SingletonRegistry에 관련하여 빈 생성과정에 대해 설명하였다. 이번 포스팅에서는 아래 굵은 글씨로 밑줄친 내용에 대해 알아볼 것이다.      1) 생성할 빈의 BeanDefition 정의     2) BeanFactoryPostProcessor가 BeanDefition을 BeanDefinitionResitry에 저장     3) BeanDefition을 바탕으로 빈 인스턴스화 (스프링 default 빈 생성 방식은 싱글톤)          3-1) 인스턴스화 이후 BeanPostProcessor가 빈 인스턴스의 후처리 작업 진행     4) 빈 인스턴스를 SingletonBeanRegistry에 저장 2)번 내용 ‘.. 2024. 4. 20.
스프링 빈 생성 과정 분석 [2] - BeanDefinitionRegistry, SingletonBeanRegistry BeanDefinitionRegistry, SingletonBeanRegistry1. 빈 생성 과정스프링 빈 생성과정에 대해 간단히 소개 하겠다.      1) 생성할 빈의 BeanDefition 정의     2) BeanDefition을 BeanDefinitionResitry에 저장     3) BeanDefition을 바탕으로 빈을 인스턴스화 (스프링 default 빈 생성 방식은 싱글톤)     4) 빈 인스턴스를 SingletonBeanRegistry에 저장 BeanDefition과 빈 인스턴스는 1대1 관계이다.두 저장소는 모두 Map타입이고 key값으로 빈의 이름이 사용된다.BeanDefinitionRegistry와 SingletonBeanResgistry가 별도의 공간임에.. 2024. 4. 20.
스프링 빈 생성 과정 분석 [1] - IOC 컨텍스트(BeanFactory) ApplicationContext(IOC 컨텍스트) 소개IOC (Inversion of Control, 제어의 역전)제어의 역전이란 프로그램의 제어 흐름 구조를 바꾸는 것이다.프로그램의 제어권이 개발자가 작성한 코드에 있는 것이 아니라 외부에 존재하는 것을 말한다.프로그램의 제어권에는 객체 생성, 사용할 객체 결정,  객체 주입, 메서드 호출 등 프로그래밍 언어로 표현할 수 있는 모든 행위를 포함한다.  스프링에서는 DI(Dependency Injection)라는 기능을 제공하는데 객체를 생성하고, 의존 타입 객체를 결정하고, 객체를 주입해준다. 이 책임을 수행하는 것이 ApplicationContext이다.  ApplicationContext가 객체 생성과 의존객체를 주입해주기 때문.. 2024. 4. 20.
[스프링 1-4] 스프링 IOC 컨테이너, 싱글톤 레지스트리 (feat. Kotlin) 이전 포스팅 동일타입 빈이 여러개인 경우에 이어 이번 포스팅에서는 스프링의 IOC Context와 싱글톤 레지스트리에 대해 알아보겠다. 목차 관심사의 분리 상속보다 합성 IOC/DI DIP 동일 타입 빈이 여러개인 경우 빈 이름 중복 DI 구현 방법 스프링의 IOC Context 싱글톤 레지스트리 스프링의 IOC Context는 스프링 빈을 생성 관리하는 컨텍스트이다. 스프링 빈이란 스프링에서 생성하고 제어권을 가지고 관리하는 객체를 말한다. 즉, 스프링 IOC Context가 빈을 생성하고 DI 객체를 결정하고 DI를 하는 것이다. 우선 스프링 IOC Context에서 접근하여 스프링의 모든 빈이 등록되어있는지 확인하겠다. @SpringBootTest class IocContextTest { @Auto.. 2024. 2. 4.
반응형