가장 많이 쓰이며 편하다.
@Autowired
어노테이션으로 간편하게 의존성을 주입할 수 있으며 명시적으로 표현된다.
때문에 쉽게 의존성을 확인할 수 있다.
클래스 타입을 찾아 자동으로 스프링에서 주입해주는 방식이다.
말 그대로 클래스를 생성할 때 생성자 메소드로 의존성을 주입한다.
당연히 클래스의 객체를 생성할 때 모든 의존성 객체들을 갖추고 난 뒤에 주입되어야 하기 때문에
필수적인 의존성을 가져야 할 때 사용되어야 한다.
(객체들의 일관성을 위한 것인가?)
내 생각대로 의존성을 상황에 맞게 변경해야 될 때 사용된다고 한다.
잘 사용되지 않는 이유는 의존성을 변경하거나 주입할 필요가 없더라도 호출 될 수 있으며
일관성이 떨어진다고 한다.