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 |