기본 스코프인 싱글톤 스코프.
스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프
상태가 없는 공유 객체, 읽기 전용 상태 가진 객체
싱글톤으로 적합하지 않은 객체의 특징은 무엇인가요?
사용할 때마다 상태 달라져야 하는 객체,
쓰기 가능한 상태 있는 객체,
매번 사용할 때 마다 의존관계 주입 완료된 새로운 객체 필요할 때,
웹과 같이 여러명이 같은 객체 사용할 때
빈 스코프의 종류에 대해 두 가지 이상 말해보세요.
컨테이너가 관리하는 것이 아니라 호출한 사용자에 의해 종료
PostConstruct : 초기화 콜백. 의존관계 주입 끝나면 호출 됨.
PreDestroy : 소멸 전 콜백. 종료 전.
커스터마이징 불가능한 외부 라이브러리 적용이 불가능하다.
bean의 initmethod와 destroymethod 속성 사용하자
================
생명주기 콜백 방법 3가지 (https://dev-coco.tistory.com/170)
1. 인터페이스 방법
InitializingBean, DisposableBean
단점 : 스프링 전용 인터페이스. 코드가 인터테이스에 의존, 초기화/소멸 메소드 오버라이드 하기 때문에 메소드 명 변경 x, 코드 커스터마이징 할 수 없는 외부 라이브러리에 적용 불가
초창기에 나온 방법, 지금은 거의 사용 x
설정 정보에서 초기화, 종료 메소드 지정
메소드명 자유롭게, 스프링 코드에 의존 x, 외부 라이브러리 적용 가능
단점 : 빈 지정 시 initMethod, destroy 메서드 직접 지정해야 하기에 번거롭다.
@PostConstruct, @PreDestory 어노테이션
최신 스프링에서 가장 권장 방법, 편리, 스프링 종속 기술이 아닌 자바 표중이라서 다른 컨테이너에서도 동작.
단점 : 외부 라이브러리에서 적용 불가능.