• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

생성자를 통한 빈 주입시 장점이 무엇인가요?

19.05.10 06:20 작성 조회수 114

0

기존에 @Autowired를 변수에 사용하여 간결하게 진을 주입받을 수 있다고 생각했는데, 굳이 생성자까지 만들어가면서 빈을 주입하면 생기는 이점이 무엇이 있을까요?

생성자를 통한 주입이 좋은 점이 있기 때문에 나온 것이라 생각하는데 굳이 코드의 길이를 늘려가면서 해야하는 이유가 무엇일까요???

답변 2

·

답변을 작성해보세요.

0

터치벨님의 프로필

터치벨

질문자

2019.05.10

아하 답변감사합니다!

0

만약에 해당 의존성이 필수라고 가정해보죠. 즉 A를 만들 때 B가 반드시 A에 들어있어야만 하는 경우. 그런 경우라면 생성자로 주입을 받는게 말이 되고 자연스럽습니다. 멤버 변수로 주입 받는 경우에는 필드 주입이니까 사실상 B가 없어도 A 객체를 만들 수 있게 되는데 결코 적절한 상황은 아니죠.

물론 뭐 현실적으로는 A객체를 직접 만들 일도 없고, 스프링이 만들어 주니까. 그리고 @Autowired도 기본값이 required=true기 때문에 B가 없으면 A 만들다 에러가 나긴 하겠지만요.