스프링의 의존성 주입은 크게 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이 붙은 인스턴스 변수에 대한 생성자를 만들어 냅니다.
'프레임워크 > Spring' 카테고리의 다른 글
Spring - MyBatis 와 스프링 연동 (0) | 2019.12.19 |
---|---|
스프링 - 오라클 데이터 베이스와의 연결 (0) | 2019.12.19 |
Spring - 동작 순서 및 어노테이션 (0) | 2019.12.18 |
스프링 이란? (0) | 2019.12.18 |
Spring - Java Configuration (0) | 2019.12.18 |