728x90

@RequiredArgsConstructor

    • 이 어노테이션은 초기화 되지않은 final 필드나, @NonNull 이 붙은 필드에 대해 생성자를 생성해 줍니다.
    • 주로 의존성 주입(Dependency Injection) 편의성을 위해서 사용됩니다.
1
2
3
4
5
6
7
8
@Service
@RequiredArgsConstructor
public class RequiredArgsConstructorService{
 
    private final OneRepository oneRepository;
    private final TwoRepository twoRepository;
    private final ThreeRepository threeRepository;
}
cs

위 처럼 Service클래스를 생성하였습니다. 이제 @RequiredArgsConstructor가 어떤 역할을 하는지 확인해 보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Service
public class RequiredArgsConstructorService{
 
    private final OneRepository oneRepository;
    private final TwoRepository twoRepository;
    private final ThreeRepository threeRepository;
 
    public RequiredArgsConstructorService(OneRepository oneRepository,TwoRepository twoRepository,ThreeRepository threeRepository){
 
        this.oneRepository = oneRepository;
        this.twoRepository = twoRepository;
        this.threeRepository = threeRepository;
 
}
}
cs

@RequiredArgsConstructor가 final필드를 매개변수로 하는 생성자를 생성해줍니다.매개변수로 있는 Repository는 빈으로 등록이 가능합니다.위 코드처럼 빈에 생성자가 오직 하나만 있고 생성자의 파라미터타입이 빈으로 등록 가능한 존재라면 @Autowired없이도 의존성 주입이 가능합니다.

 

 

 

@RequiredArgsConstructor을 이용해서 의존성 주입하는 방법을 알아봤습니다.

다음엔 의존성 주입의 다양한 종류를 알아보고 장단점이 뭔지 써보겠습니다.


 

 

728x90

'Dev > Spring' 카테고리의 다른 글

@RequestMapping에 대하여  (0) 2021.07.24
[Spring]@RestController 와 @Controller의 차이  (0) 2021.07.18
로깅(Logging)  (0) 2021.07.13
[Spring]다양한 의존관계 주입 방법  (0) 2021.06.25
[Spring]의존성 주입(Dependency Injection)  (0) 2021.06.24