NestJS로 싱글 톤으로 작동하는 서비스를 만드는 방법

발레리오

싱글 톤 서비스를 제공하는 모듈을 만들려고합니다. QueueService가장 간단한 구현이 싱글 톤 서비스라고 상상해보십시오 .

재현 가능한 저장소 : https://github.com/colthreepv/nestjs-singletons

코드의 벽

app.module.ts :

@Module({ imports: [FirstConsumerModule, SecondConsumerModule] })
export class AppModule {}

firstconsumer.module.ts secondconsumer.module.ts (동일 함) :

@Injectable()
class FirstConsumer {
  constructor(private readonly dependency: DependencyService) {}
}

@Module({
  imports: [DependencyServiceModule],
  providers: [DependencyService, FirstConsumer]
})
export class FirstConsumerModule {
  constructor(private readonly first: FirstConsumer) {}
}

dependency.module.ts :

@Injectable()
export class DependencyService {
  constructor() { console.log("Instance created") }
}

@Module({ providers: [DependencyService], exports: [DependencyService] })
export class DependencyServiceModule {}

코드 완료

내가 얻고 싶은 것은 console.log Instance created가 한 번만 게시되는 것입니다.
현재 :

[NestFactory] Starting Nest application...
Instance created
Instance created
Instance created
[InstanceLoader] AppModule dependencies initialized +16ms
[InstanceLoader] DependencyServiceModule dependencies initialized +1ms
[InstanceLoader] FirstConsumerModule dependencies initialized +1ms
[InstanceLoader] SecondConsumerModule dependencies initialized +1ms
[NestApplication] Nest application successfully started +8ms
제이 맥 도니 엘

NestJS 모듈에는 싱글 톤이 있으며 해당 공급자는 동일한 모듈에서 제공되는 한 싱글 톤이됩니다. 샘플 코드에는 세 가지 다른 모듈에 대해 세 DependencyService가지 다른 providers배열 이 있습니다 . 대신해야 할 일은 배열의 배열 에만 있는 것입니다 . 그럼 당신 만이 필요 에서 의 배열 하지 않는 를 추가 받는 하나의 배열입니다. 의 존재 덕분에 배열 공급자 이미 모듈 컨텍스트 가능하다.providersDependencyServiceModuleexportsDependencyServiceModuleimportsFrstConsumerModuleSecondConsumerModuleDependencyServiceprovidersexports

@Module({
  providers: [DependencyService],
  exports: [DependencyService]
})
export class DependencyServiceModule {}
@Module({
  imports: [DependencyServiceModule],
  providers: [FirstConsumer] // notice no DependencyService class
})
export class FirstConsumerModule {}
@Module({
  imports: [DependnecyServiceModule, FirstCosnumerModule]
})
export class AppModule {}

위의 경우 "인스턴스 생성됨"로그가 두 개가 아닌 하나만 표시됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Spring에서 birt 런타임 객체를 싱글 톤으로 만드는 방법

분류에서Dev

Jms 리스너 빈을 비 싱글 톤으로 만드는 방법은 무엇입니까?

분류에서Dev

싱글 톤 클래스를 사용하여 종속성 주입으로 이동하는 방법

분류에서Dev

MKMapView의 싱글 톤 클래스를 Storyboard에서 맵으로 설정하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 싱글 톤으로 Base 클래스를 상속하는 방법

분류에서Dev

싱글 톤으로 만 생성 할 수있는 나쁜 동작의 타사 c-lib를 분리하는 방법은 무엇입니까?

분류에서Dev

RealmObject를 싱글 톤으로 확장하는 클래스

분류에서Dev

swift3에서 싱글 톤 클래스를 위임자로 만드는 방법

분류에서Dev

Craftercms : Spring에서 싱글 톤 서비스 빈 (groovy로 작성)을 정의하는 방법은 무엇입니까?

분류에서Dev

싱글 톤 범위 종속성으로 Grails 2.4.x 서비스를 주입하는 방법은 무엇입니까?

분류에서Dev

지연된 인스턴스화와 싱글 톤으로 바인딩을 등록하는 방법

분류에서Dev

클릭으로 싱글 톤 변수에 액세스하고 NullReferenceException을 발생시키지 않는 방법

분류에서Dev

싱글 톤 패턴에서 Spring으로 마이그레이션하는 방법은 무엇입니까?

분류에서Dev

싱글 톤 패턴에서 Spring으로 마이그레이션하는 방법은 무엇입니까?

분류에서Dev

스레드로부터 안전한 싱글 톤을 만드는 적절한 방법은 무엇입니까?

분류에서Dev

Swift의 싱글 톤 클래스에서 특정 TableViewController의 tableview를 다시로드하는 방법

분류에서Dev

Android에서 Roboguice를 사용하여 Google Guava Eventbus를 글로벌 싱글 톤으로 주입하는 방법은 무엇입니까?

분류에서Dev

각도 서비스가 싱글 톤으로 작동하지 않음

분류에서Dev

싱글 톤 클래스, Simple Injector에서 과도 로거를 사용하는 방법

분류에서Dev

더 복잡한 컨트롤러 이름을 싱글 톤이 아닌 싱글 톤으로 등록하는 방법은 무엇입니까?

분류에서Dev

미리 정의 된 값으로 일반 클래스를 상속하고 둥근 대괄호없이`is`와 비교할 수있는 싱글 톤을 만드는 방법은 무엇입니까?

분류에서Dev

Spring에서 싱글 톤을 생성하는 팩토리를 만드는 방법

분류에서Dev

Doxygen 1.8.8에 의해 싱글 톤으로 해석되는 std 클래스

분류에서Dev

Invokedynamic 팩토리는 람다를 싱글 톤으로 생성합니까?

분류에서Dev

Flutter 앱에서 전역 싱글 톤 객체를 만드는 방법

분류에서Dev

싱글 톤에서 getUserMedia 콜백을 동기화하는 방법

분류에서Dev

Angular 2-한 번만로드하면되는 글로벌 서비스를 만드는 방법

분류에서Dev

싱글 톤의 비동기 항목에서 인터페이스 요소를 업데이트하는 방법

분류에서Dev

비즈니스 로직 레이어에서 싱글 톤 및 / 또는 팩토리 패턴을 사용하는 방법

Related 관련 기사

  1. 1

    Spring에서 birt 런타임 객체를 싱글 톤으로 만드는 방법

  2. 2

    Jms 리스너 빈을 비 싱글 톤으로 만드는 방법은 무엇입니까?

  3. 3

    싱글 톤 클래스를 사용하여 종속성 주입으로 이동하는 방법

  4. 4

    MKMapView의 싱글 톤 클래스를 Storyboard에서 맵으로 설정하는 방법은 무엇입니까?

  5. 5

    파이썬에서 싱글 톤으로 Base 클래스를 상속하는 방법

  6. 6

    싱글 톤으로 만 생성 할 수있는 나쁜 동작의 타사 c-lib를 분리하는 방법은 무엇입니까?

  7. 7

    RealmObject를 싱글 톤으로 확장하는 클래스

  8. 8

    swift3에서 싱글 톤 클래스를 위임자로 만드는 방법

  9. 9

    Craftercms : Spring에서 싱글 톤 서비스 빈 (groovy로 작성)을 정의하는 방법은 무엇입니까?

  10. 10

    싱글 톤 범위 종속성으로 Grails 2.4.x 서비스를 주입하는 방법은 무엇입니까?

  11. 11

    지연된 인스턴스화와 싱글 톤으로 바인딩을 등록하는 방법

  12. 12

    클릭으로 싱글 톤 변수에 액세스하고 NullReferenceException을 발생시키지 않는 방법

  13. 13

    싱글 톤 패턴에서 Spring으로 마이그레이션하는 방법은 무엇입니까?

  14. 14

    싱글 톤 패턴에서 Spring으로 마이그레이션하는 방법은 무엇입니까?

  15. 15

    스레드로부터 안전한 싱글 톤을 만드는 적절한 방법은 무엇입니까?

  16. 16

    Swift의 싱글 톤 클래스에서 특정 TableViewController의 tableview를 다시로드하는 방법

  17. 17

    Android에서 Roboguice를 사용하여 Google Guava Eventbus를 글로벌 싱글 톤으로 주입하는 방법은 무엇입니까?

  18. 18

    각도 서비스가 싱글 톤으로 작동하지 않음

  19. 19

    싱글 톤 클래스, Simple Injector에서 과도 로거를 사용하는 방법

  20. 20

    더 복잡한 컨트롤러 이름을 싱글 톤이 아닌 싱글 톤으로 등록하는 방법은 무엇입니까?

  21. 21

    미리 정의 된 값으로 일반 클래스를 상속하고 둥근 대괄호없이`is`와 비교할 수있는 싱글 톤을 만드는 방법은 무엇입니까?

  22. 22

    Spring에서 싱글 톤을 생성하는 팩토리를 만드는 방법

  23. 23

    Doxygen 1.8.8에 의해 싱글 톤으로 해석되는 std 클래스

  24. 24

    Invokedynamic 팩토리는 람다를 싱글 톤으로 생성합니까?

  25. 25

    Flutter 앱에서 전역 싱글 톤 객체를 만드는 방법

  26. 26

    싱글 톤에서 getUserMedia 콜백을 동기화하는 방법

  27. 27

    Angular 2-한 번만로드하면되는 글로벌 서비스를 만드는 방법

  28. 28

    싱글 톤의 비동기 항목에서 인터페이스 요소를 업데이트하는 방법

  29. 29

    비즈니스 로직 레이어에서 싱글 톤 및 / 또는 팩토리 패턴을 사용하는 방법

뜨겁다태그

보관