인프런 커뮤니티 질문&답변

터치벨님의 프로필 이미지

작성한 질문수

스프링 기반 REST API 개발

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

작성

·

161

0

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

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

답변 2

0

터치벨님의 프로필 이미지
터치벨
질문자

아하 답변감사합니다!

0

백기선님의 프로필 이미지
백기선
지식공유자

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

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