Beans
* Circular dependencies
Constructor Injection 사용 시 Beans 간 서로 참조하여 순환 참조 관계가 만들어지지 않도록 주의하여야 함
* <value/>
사람이 읽을 수 있는 문자열(String) 표현처럼 property 나 생성자의 인자를 명시
* depends-on
객체의 생성 순서를 정의, 반드시 depends-on 에 선언된 객체가 호출 된 객체보다 먼저 생성되어 있어야 함
* singleton Pattern
특정 Bean을 getBean을 통해 여러번 호출해도 Bean 객체는 처음 하나만 생성됨
* default-lazt-init ="true"
모든 Bean들이 전부 Lazy Loading 으로 동작함
* singleton vs prototype
- singleton : 여러번 호출해도 하나의 Bean 객체만 생성
- prototype : 매 번 같은 타입의 새로운 Bean 객체를 생성
- scope의 기본 설정겂이 singleton 이므로 singleton 일 경우 scope를 작성 할 필요가 없음
* Bean Life Cycle
사용 가능한 상태의 Bean
Container 가동 ㅡㅡㅡ→ Initialization(초기화) ㅡㅡㅡ→ Activation(활성화) ㅡㅡㅡ→ Destruction(종료)
설정 메타데이터 | ↑ Container 종료시
초기화 완료 ┖----┚
* Annotation
xml 파일 없이 java class에 @을 이용하여 직접 환경 설정