개발공부/Spring
Spring에서 Bean을 주입하는 방식
람람람2
2020. 3. 16. 19:47
반응형
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/
반응형