개발공부/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/

 

 

 

반응형