[Spring-Lombok] @RequiredArgsConstructor란?

민지·2024년 2월 21일
0

Spring

목록 보기
19/25
post-custom-banner

1. @RequiredArgsConstructor 를 사용한 예시

@RequiredArgsConstructor
@Service
public class ArticleController {

	private final ArticleService articleService;
    
    ...
}

2. @RequiredArgsConstructor 를 사용하지 않고 생성자 주입 코드를 모두 작성한 경우의 예시

public class ArticleController {

    private final ArticleService articleService;
  
  @Autowired
  public ArticleController(ArticleService articleService) {
    this.ArticleRepository = ArticleRepository;
  }

보통 DI(의존성 주입)을 방식에는 필드 주입(Field Injection), 수정자 주입(Setter Injection), 생성자 주입(Constructor Injection)의 3가지의 방법이 있는데 이중에서 가장 권장하는 의존성 주입은 생성자 주입 방식이다.

final 로 DI(의존성 주입)를 할 때 필요한 객체를 선언하여 생성자를 만들어주어야 한다. 하지만 생성자 주입을 위한 코드를 직접 작성하는 부분에서 번거로움이 존재한다.

그래서 많이들 사용하는 Lombok에서 @Getter, @Setter 어노테이션 처럼 @RequiredArgsConstructor 어노테이션은 클래스에 선언된 final 변수들, 필드들을 매개변수로 하는 생성자를 자동으로 생성해준다. 코드도 간결해지고 의존성 주입을 자동으로 처리하여 객체 생성 시 필요한 의존성을 보다 편리하게 주입할 수 있는 장점이 있다.

profile
개발일지
post-custom-banner

0개의 댓글