[Spring] IoC를 실현하기 위한 DI(의존 관계 주입) 방법 3가지
의존 관계를 주입할 수 있는 방법은 3가지다.필드 주입setter 주입생성자 주입 생성자가 단 1개라면, @Autowired 하지 않아도 스프링 컨테이너가 가지고 있는 스프링빈으로 의존관계를 주입해준다.이렇다는 것은 스프링이 현재 생성자 주입을 통해 의존 관계를 설정해주는 것을 밀고 있다는 뜻이 아닐까?! 그렇다면, 왜 필드 주입 방법과 setter 주입 방법은 생성자 주입 방법에 밀린걸까!? 필드 주입 방법의 단점생성자, setter 메서드를 통해 덮어쓰기가 가능하다.테스트를 작성할 때, 스프링 컨테이너에게 의존하게 된다.순환 참조를 실행시에 알 수 있다. (스프링버전 2.5 이후부터는 필드 주입도 순환 참조를 알 수 있음) setter 주입 방법의 단점외부에서 의도치 않게 값이 변경될 수 있다.