의존성주입, 생명주기
의존성주입 3가지 방법
- 생성자주입
- final불일 수 있음(final은 선언과 초기화가 같이 일어나야하지만 필드일때는 생성자로는 허용)
- 불변, 필수성질을 갖게할 수 있음
- 잘못되면 컴파일에러가 나기때문에 오류를 잡아줌
- 수정자주입
- final 붙일 수 없음
- 중간에 수정이 필요한경우
- 실수로 바꿀수 있기 때문에 권장 x
- 필드주입
- final을 붙일수 없음
- 간편함
- 스프링같은 DI프레임워크없이 의존성을 직접 주입해주기 어려움
- 공식문서
- ApplicationContext로는 close()구현 못함
AnnotationConfigApplicationContext
이 여러 인터페이스를 구현하는데 그중에 ApplicationContext도 있고 다른 것들도 있는데 다른것(Closeable)에서 close가 연관된것이기 때문