Property-based injection(속성기반주입)

그로밋·2024년 5월 10일
0

Property-based injection(속성 기반 주입)

생성자 기반 주입이 아닌 속성 기반 주입에 대해 알아볼 것이다. 그 전에 알아두어야 하는 것은 만일 클래스가 또다른 클래스를 상속하지 않는다면 웬만해선 생성자 기반 주입을 사용하도록 공식문서에서는 권장하고 있다.

언제 property-based 주입을 사용하면 좋은가?

최상위 클래스가 하나 혹은 여러개의 provider에 의존하는 경우 원래라면 이를 상속하는 모든 하위 클래스들의 내부 생성자에서 super()를 호출하여 provider를 전부 전달해야 한다.

이러한 귀찮은 작업을 하지 않기 위해 속성 수준(멤버 변수 필드)에서 @Inject() 데코레이터를 사용할 수 있다.

import { Injectable, Inject } from '@nestjs/common';

@Injectable()
export class HttpService<T> {
  @Inject('HTTP_OPTIONS')
  private readonly httpClient: T;
}

출처

profile
Work as though your strength were limitless. <S. Bernhardt>

0개의 댓글