반응형
1) @Autowired
2) setter
3) 생성자
이 중에서 가장 권장하는 방식 : 생성자로 주입받는 방식
lombok 어노테이션의 @RequiredArgsConstructor 에서 해결 - final 선언된 모든 필드를 인자값으로 하는 생성자를 대신생성해줌
그렇다면 @Autowired를 권장하지 않는 이유는 무엇일까?
- 순환 의존성 (클래스a <-> 클래스b를 서로 참조할 수 있음)
- final 선언이 아니므로 객체가 변할 수 있다.
이런 이유로 스프링팀에서는 생성자 방식을 권한다.
출처 :
스프링부트와 AWS로 혼자 구현하는 웹 서비스 - 이동욱 저
https://yaboong.github.io/spring/2019/08/29/why-field-injection-is-bad/
반응형
'개발공부 > Spring' 카테고리의 다른 글
예외처리(1) (0) | 2020.10.01 |
---|---|
SPRING AOP (0) | 2018.07.02 |
SLF4J와 Logback (1) | 2018.06.26 |
Tiles란, Spring tiles3 적용법 (2) | 2018.06.14 |