[스프링 부트] 7. 의존성 주입

lhs's avatar
Nov 17, 2024
[스프링 부트] 7. 의존성 주입
 

1. 생성자 주입

@Controller public class BoardController { private final BoardService boardService; // public BoardController(){ // } public BoardController(BoardService boardService) { this.boardService = boardService; } }
  • 기본 생성자 없이 매개변수를 가진 생성자만 있을 경우, 스프링은 이 생성자를 통해 BoardService 빈을 주입하여 의존성을 설정한다.
  • 기본 생성자가 있을 경우, 스프링은 기본 생성자를 사용하고, 매개변수 있는 생성자는 무시되므로 매개변수 생성자를 사용하려면 기본 생성자를 제거해야 한다.
  • BoardServicefinal을 붙여 의존성 주입을 보장하고, 의존성 주입 후 값 변경을 방지한다.

2. Lombok을 활용한 생성자 주입

@RequiredArgsConstructor @Controller public class BoardController { private final BoardService boardService; }
  • @RequiredArgsConstructor 어노테이션을 사용하면 final이 붙은 필드에 대한 생성자를 자동으로 생성해준다.
  • 생성자를 자동으로 생성해주어 코드가 간결해지고, 의존성 주입을 쉽게 처리할 수 있다.
Share article

LHS's Study Space