Spring DI @Autowired 는 필드가 아니라 생성자에 주입하자!
2019. 10. 25. 11:56ㆍ프로그래밍/Spring
출처 : https://leejisoo860911.tistory.com/2
지금까지 @Autowired를 필드에 직접 붙이는 방식이 보기에도 편하고 선호했었는데 생성자로 주입하는 것이 훨씬 좋다는 것을 알게 됐다.
주입하는 방식은 의존성 구조를 이해하기도 어렵고 무엇보다 주입된 객체가 null 일 경우 컴파일시 이 오류를 잡아내지 못하고 실행을 해서 NullPointerException이 발생해야 알 수 있다는 치명적인 단점이 있는데 생성자에 주입할 경우 빌드시 이를 잡아낼 수 있어서 아주 유용할 듯 하다.
물론 이 외에도 생성자를 사용하는 것의 장점은 많지만 우선적으로 눈에 띄인 부분이었다.
그리고 Lombok을 사용할 경우 다음과 같은 애노테이션을 사용해서 생성자를 만들지 않아도 된다는 꿀팁도 알게 됐다.
@RequiredArgsConstructor 초기화 되지 않은 final 필드와 @NonNull 어노테이션이 붙은 필드에 대한 생성자 생성@AllArgsConstructor 모든 필드에 대한 생성자 생성.
'프로그래밍 > Spring' 카테고리의 다른 글
@Bean 어노테이션과 @Component (0) | 2019.10.25 |
---|---|
@Resource @Autowired @Inject 차이점과 사용법 (0) | 2019.10.25 |
Springboot logback 설정하기, 콘솔 및 파일저장 (0) | 2019.09.06 |
Spring-ResponseEity는-왜-쓰는-것이며-어떻게-쓰는걸까 (0) | 2019.09.04 |
junit Test (0) | 2019.06.04 |