Spring Boot 문법
[다양한 어노테이션] POJO 의 초기화 / 폐지 순서 정하기
여우비오냐
2024. 4. 4. 20:52
➤ 언제 사용할까?
=> 파일을 열거나 끝났을 때 닫아야하는 경우, 네트워크 DB에 접속하거나 접속을 끊는 경우, 메모리를 할당하거나 할당을 해제 하는 경우 등등 특정 초기화/폐기 작업을 요하는 경우
➤ 다음과 같은 다양한 방법이 있음!
- @Bean 정의부에서 initMethod, destroyMethod 속성
- Bean 생성 이전에 openFile 메소드, 폐기 직전에 closeFile 메소드를 각각 실행하게 된다.
- @PostConstruct, @PreDestroy
- @Lazy
Spring은 애플리케이션 시작과 동시에 POJO 를 초기화한다
그런데 모든 POJO 클래스를 시작 시점에 시작하면 필요없는 리소스가 집중 되게 된다.
따라서 네트워크 접속, 파일 처리등 무거운 작업을 처리하는 POJO 는 느긋한 초기화가 어울린다.
@Lazy 를 붙인 POJO는 애플리케이션이 요구하거나 다른 POJO가 참조하기 전까진 초기화되지 않는다.
- @DependsOn
- 초기화 순서를 보장한다. (Race condition 을 예방)