반응형

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

+ Recent posts