강의

멘토링

커뮤니티

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

bluerain님의 프로필 이미지
bluerain

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Users Microservice - H2 데이터베이스 연동

환경 설정 vo를 빈으로 주입받는게 왜 권장되지 않는 방법인가요?

작성

·

313

0

안녕하세요.
이번 강의에서
application.yml에 작성한 greeting.message 설정값을 Greeting 클래스에서 @Value를 이용해 바인딩받은뒤
UserController에서 @Autowired로 Greeting을 빈으로 주입받아 사용하는 예제를 보여주셨는데요
보여주시면서 Greeting을 빈으로 주입받아 사용하는게 권장되지 않는다고 말씀해주셨는데 해당 방법이 권장되지 않는 이유가 무엇인가요?
 
감사합니다.

답변 1

3

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다. 

생성자에서 모든 필수 종속성을 매개변수에 하여 주입을 할 때, 해당 종속성이 주입되지 않을 때 클래스의 인스턴스가 생성되지 않을 것이라 확신할 수 있습니다. 

IoC 컨테이너는 생성자에 전달하기 전에 생성자에 제공된 모든 인스가 사용가능한지 확인하기 때문에, NullPointerException을 방지할 수 있습니다. 

이러한 방식으로 인해, 생성자 주입은 필요한 모든 종속성이 로드되었는지 (null인지 유무) 확인하기 위한 코드를 작성할 필요가 없습니다. 

감사합니다. 

bluerain님의 프로필 이미지
bluerain
질문자

아. 생성자 주입vs필드주입에 대한 말씀이였군요

환경설정값을 바인딩받는 빈을 주입하는거를 지양해야하는게 아니라

필드주입보다 생성자주입이 좋다는 말씀이였네요

감사합니다

bluerain님의 프로필 이미지
bluerain

작성한 질문수

질문하기