1. BeanLifeCyle 전체 흐름
- BeanDefinition 등록
- BeanFactoryPostProcess: BeanDefinition 수정
- Bean 인스턴스 생성
- (의존성 주입)
- BeanNameAware, BeanClassLoaderAware, BeanFactoryAware등 인터페이스
- bean 생성 직후, 의존성 주입 직후
AbstractAutowireCapableBeanFactory.invokeAwareMethods()
- BeanPostProcessor(postProcessBeforeInitialization)
- Bean 인스턴스 생성 직전/직후, 모든 Bean에 대해서 공통적으로 동작한다.
- postProcessBeforeInitialization(..)
- postProcessAfterInitialization(..)
- 대표 구현체
- AutowiredAnnotationBeanPostProcessor(의존성 주입)
- AnnotationAwareAspectJAutoProxyCreator(AOP 프록시 래핑)
- InitDestroyAnnotationBeanPostProcessor(@PostConstruct, @PreDestroy 지원)
InitialzationBean.afterPropertiesSet() or @PostConstruct
- BeanPostProcessor(postProcessAfterInitailization)
- Bean 사용
DisposableBean.destroy() or @PreDestroy
계속 읽기
1. 구조의 필요성
- Spring은 “Bean의 생성/의존성 주입”뿐만 아니라 라이프사이클 후킹, 확장 포인트, 이벤트 시스템, 커스텀 초기화 등 “복잡한 컨테이너 초기화”를 확장성 있게 지원해야 한다.
refresh()를 통해서 아래와 같은 흐름으로 진행됩니다.
1) 컨테이너 준비
2) BeanDefinition 로딩
3) PostProcessor
4) BeanInstantiate
5) AddEventListener
- 일련의 작업을 명확히 분리해서 진행
계속 읽기
1. 왜 세 가지로 나뉘는가?
- Spring은 구성 정보의 표현, 빈 생성/관리, 전체 애플리케이션 문맥 관리까지 계층적으로 나눴다.
- DI 컨테이너로써 단일,인터페이스/클래스로 모든 것을 표현하면 확장성, 테스트성, 유지보수성이 감소
- 따라서 구성 -> 생성/관리 -> 애플리케이션 레벨 관리로 계층을 분리
계속 읽기
정의
- HikariCP는 Java application의 JDBC Connection의 객체를 Pooling 방식으로 관리하며 성능, 자원 효율성을 극대화하는 고성능 경량 커넥션 풀 라이브러리
계속 읽기
Jasypt?
- Java Simplified Encryption의 약자이다.
계속 읽기
- 애플리케이션이 필요한 설정을 자동으로 적용해주는 기능
- 아니, 따로 설정을 하지 않으면 미리 구성되어 있는 설정을 적용한다고 보는게 맞을 것이다.
@EnableAutoConfigure과 META-INF/spring.factories 파일을 바탕으로 동작한다.
- 커스텀 dependency도
META-INF/spring.factories에 등록하여 auto-configure를 받을 수 있다.
계속 읽기
- 일전의 공부한 내용을 실제로 구현해보면서 공부해보고자 시작한 프로젝트다.
- 이전 글
- 아직 공부 중인 개념입니다. 조금 틀려도 너른 이해 부탁드립니다!
- 이 글은 개인적인 의견을 다룹니다.
계속 읽기
- 일전의 공부한 내용을 실제로 구현해보면서 공부해보고자 시작한 프로젝트다.
- 이전 글
- 아직 공부 중인 개념입니다. 조금 틀려도 너른 이해 부탁드립니다!
- 이 글은 개인적인 의견을 다룹니다.
계속 읽기
- 일전의 공부한 내용을 실제로 구현해보면서 공부해보고자 시작한 프로젝트다.
- 이전 글
- 아직 공부 중인 개념입니다. 조금 틀려도 너른 이해 부탁드립니다!
- 이 글은 개인적인 의견을 다룹니다.
계속 읽기
- 일전의 공부한 내용을 실제로 구현해보면서 공부해보고자 시작한 프로젝트다.
- 이전 글
- 아직 공부 중인 개념입니다. 조금 틀려도 너른 이해 부탁드립니다!
- 이 글은 개인적인 의견을 다룹니다.
계속 읽기