1. @RequiredArgsConstructor 어노테이션을 사용한 생성자 주입 방법
- 생성자 주입의 단점은 위의 Constructor(생성자) 코드처럼 생성자를 만들기 번거옵다는 것, 이를 보안하기 위해 롬복을 사용하여 간단한 방법으로 생성자 주입을 할 수 있다.
- final이 붙거나 @NotNull이 붙은 필드의 생성자를 자동 생성해주는 롬봄 어노테이션
2. 의존성 주입의 종류
1) Constructor(생성자)
public class ExampleCase {
private final ChocolateService chocolateService;
private final DrinkService drinkService;
@Autowired
public ExampleCase(ChocolateService chocolateService, DrinkService drinkService) {
this.chocolateService = chocolateService;
this.drinkService = drinkService;
}
}
2) Setter
public class ExampleCase{
private ChocolateService chocolateService;
private DrinkService drinkService;
@Autowired
public void setChocolateService(ChocolateService chocolateService){
this.chocolateService = chocolateService;
}
@Autowired
public void setDrinkService(DrinkService drinkService){
this.drinkService = drinkService;
}
}
3) Field
public class ExampleCase{
@Autowired
private ChocolateService chocolateService;
@Autowired
private DrinkService drinkService;
}
- RequiredArgsConstructor를 활용한 생성자 주입
@Service
@RequiredArgsConstructor
public class BannerServiceImpl implements BannerService {
private final BannerRepository bannerRepository;
private final CommonFileUtils commonFileUtils;
- RequiredArgsConstructor를 사용하지 않으면 원래는 이렇게 생성자 주입을 해야 한다.
@Service
public class BannerServiceImpl implements BannerService {
private BannerRepository bannerRepository;
private CommonFileUtils commonFileUtils;
@Autowired
public BannerServiceImpl(BannerRepository bannerRepository, CommonFileUtils commonFileUtils) {
this.bannerRepository = bannerRepository;
this.commonFileUtils = commonFileUtils;
}
...
'Spring > Annotation' 카테고리의 다른 글
@Configuration (0) | 2022.06.01 |
---|---|
@RequestParam (0) | 2022.05.30 |
@Controller, @RestController 비교 (0) | 2022.05.30 |
@Pathvariable (0) | 2022.05.27 |
@Data (0) | 2022.05.27 |