티스토리 뷰
프로파이더는 Nest의 기본 개념입니다. 많은 기본 Nest 클래스는 프로바이더로 취급될 수 있습니다. 서비스, 리포지토리, 팩토리, 헬퍼 등입니다. 제공자의 주요 아이디어는 종속성으로 주입될 수 있다는 것입니다. 즉, 객체는 서로 다양한 관계를 만들 수 있으며 이러한 객체를 "연결"하는 기능은 대체로 Nest 런타임 시스템에 위임될 수 있습니다.
@Injectable 데커레이터를 선언 함으로써 다른 어떤 Nest 컴포넌트에서도 주입 할 수 있는 프로바이더가 된다.
예시
Something Contoller 에서 SomethingService를 사용한다면 SomethingService 형태는 다음과 같습니다.
import { Injectable } from '@nestjs/common';
import { Something } from './interfaces/something.interface';
@Injectable()
export class SomeThingService {
private readonly somethings: Something[] = [];
create(something: Something) {
this.somethings.push(something);
}
findAll(): Something[] {
return this.somethings;
}
}
Nest는 일반적으로 종속성 주입(Dependency Injection)으로 알려진 강력한 디자인 패턴을 기반으로 구축되었습니다.
DI 관련: https://angular.dev/guide/di
프로바이더 사용
@Module() 데코 레이터 안에서 providers: [ ] 배열안에 등록해 줘야 사용할 수있다.
프로바이더를 사용 하면서 상속 기반일 경우의 예시
//Base-1
export class BaseService {
construct(private readonly serviceOne: ServiceOne){
super(serviceOne)
}
getAciton(): string{
return "Base Punch"
}
getAnotherAction(): string{
return this.serviceOne.getAciton()
}
}
//Base-2
export class BaseService {
@Inject(ServiceOne) private readonly serviceOne: ServiceOne
getAciton(): string{
return "Base Punch"
}
getAnotherAction(): string{
return this.serviceOne.getAciton()
}
}
@Injectable()
export class ServiceOne {
getAciton(): string {
return "One Punch"
}
}
@Injectable()
export class ServiceTwo extends BaseService {
getAciton(): string {
return this.getAnotherAction()
}
}
출처:
'Nest' 카테고리의 다른 글
#2 Nest Controller (0) | 2024.12.04 |
---|---|
#1 Nest 와 데코레이터(Decorator) (0) | 2024.12.04 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Java
- 리눅스
- 유니티 플레이어 캐릭터
- nest routing
- 유니티 캐릭터
- nest js
- react
- Kotlin
- 클래스
- JavaScript
- object
- 유니티 개발
- 유니티 실습
- 코틀린
- 유니티 게임개발
- 상속
- inheritance
- Linux
- 함수
- Unity2D
- 유니티
- 리액트
- Unity
- Transform
- JVM
- 오버라이딩
- nest
- 자바스크립트
- 유니티 게임 개발
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함