개발/SPRING
[Spring] DI를 쉽게 하는 방법 (Feat. @RequiredArgsConstructor)
지잉지잉
2023. 2. 26. 14:44
1. 개요
- Spring DI 방법은 대표적으로 아래의 세 가지를 이용한다.
- 생성자 주입
- Field 주입
- Setter 주입
- 보통은 @Autowired를 이용한 Field 주입을 많이 사용하는데, 생성자 주입을 권장한다.
- 순환참조 이슈
- Bean을 Immutable 하게 주입 가능 등 장점이 많다.
2. 기본적인 생성자 주입 방법
@RestController
@RequestMapping("")
public class TestController {
private final ProjectService projectService;
private final CatalogService catalogService;
private final MailService mailService;
public TestController(ProjectService projectService, CatalogService catalogService, MailService mailService) {
this.projectService = projectService;
this.catalogService = catalogService;
this.mailService = mailService;
}
}
- 생성자에 Dependencies를 추가한다.
- Spring은 해당 Dependency를 찾아와 자동으로 주입해준다.
3. 더 간단하게 생성자 주입
@RestController
@RequestMapping("")
@RequiredArgsConstructor
public class TestController {
private final ProjectService projectService;
private final CatalogService catalogService;
private final MailService mailService;
}
- @RequiredArgsConstructor
- final 혹은 @NonNull 이 붙은 필드만 받는 생성자 자동생성
- @RequiredArgsConstructor로 생성자를 생략할 수 있고, 자동으로 의존성 주입(생성자 주입)까지 된다.