소소한개발팁
반응형

스프링의 의존성 주입은 크게 Setter 주입과 생성자 주입으로 나뉘어집니다.

 

1. Setter 주입

setXXX() 와 같은 메서드를 작성하거나 Lombok으로 생성하여 @Autowired 와 같은 어노테이션을 통해서 스프링으로부터 자신이 필요한 객체를 주입해 주도록 합니다.

 

2. 생성자 주입

생성자 주입은 이러한 주입을 생성자를 통해서 처리합니다. 생성자 주입의 경우 객체 생성시 의존성 주입이 필요하므로 좀 더 엄격하게 의존성 주입을 체크하는 장점이 있습니다. 기존의 생성자 주입은 생성자를 주입하고 @Autowired를 통해서만 주입이 이루어 졌지만 4.3 버전 이후로는 묵시적으로 생성자 주입이 가능해졌습니다.

 

@AllArgsConstructor : 인스턴스 변수로 선언된 모든 것을 파라미터로 받는 생성자를 작성하게 됩니다. 

 

@NonNull 과 @RequiredArgsConstructor  어노테이션을 이용하면 여러개의 인스턴스 변수들 중에서 특정한 변수에 대해서만 생성자를 작성할 수 있습니다. 

 

ex)

 

@Component

@ToString

@Getter

@RequiredArgsConstructor

public class sampleHotel{

 

@NonNull

private Chef chef;

}

 

@RequiredArgsConstructor 는 @NonNull 이나 final이 붙은 인스턴스 변수에 대한 생성자를 만들어 냅니다.

 

반응형
profile

소소한개발팁

@개발자 뱅

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!