본문 바로가기
Java/JPA

[SpringBoot_JPA_1] Injection

by HJ0216 2023. 5. 25.

이 글은 김영한의 [실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발] 수강하며 정리한 글입니다.

 

 

🟦 기본 환경: IDE: IntelliJ, Language: Java

 

 

1. Field Injection

❌ Test case 주입이 어려움

 

2. Setter Injection

⭕ Test case 주입 가능

❌ memberRepository가 제약없이 변경 가능

 

3. Constructor Injection

⭕ Test case 주입 가능

 memberRepository 변경의 제약(생성자 1회만 호출)

Test case가 반드시 주입될 수 있도록 함

 

4. Lombok: @AllArgsConstructor

모든 필드에 대해 생성자 생성

 

5. Lombok: @RequiredArgsConstructor

final 필드에 대해 생성자 생성

값이 주입되지 않을 경우, compile error 발생