Spring Bean
은 Spring IoC
컨테이너가 관리하는 자바 객체를 Bean이라는 용어로 부른다.
일반적으로 선언하는 객체를 Bean이라고 부르진 않고 ApplicationContext.getBean()
으로 얻어질 수 있는 객체를 Bean이라고 한다.
즉 Spring에서의 빈은 ApplicationContext
가 만들어서 그 안에 담고 있는 객체를 의미한다.
빈을 만드는 방법은 다양하지만 기본적으로 크게 두가지의 방법이 존재한다.
자동으로 빈등록 vs 수동으로 빈 등록
스프링
은 똑같은 이름의 빈이 등록 되었을 시 수동빈이 우선권을 가진다.스프링 부트
는 수동빈 등록과 자동 빈 등록이 충돌이 나면 오류가 발생하도록 기본 값을 바꾸었다.
스프링 컨테이너 생성 → 스프링 빈 생성 → 의존 관계 주입 → 초기화 콜백 → 사용 → 소멸전 콜백 → 스프링 종료
스프링은 크게 3가지 방법으로 빈 생명주기 콜백을 지원한다.
javax.annotation.PostConstruct
이다. 스프링에 종속적인 기술이 아니라 JSR-250라는 자바 표준이다.