は@Injectable
は@Injectableデコレータは、基本的に、Springの@Componentまたは@Autowiredの等価2角形ですか?
それとも
それは私がこのクラスを注入できるようにする」という意味ない「の注入はどんなデコレータが上にあるクラスへの許可」
を意味しています(これはデコレータが上にある)を 'where'のアプリケーションに「?
は@Injectable
は@Injectableデコレータは、基本的に、Springの@Componentまたは@Autowiredの等価2角形ですか?
それとも
それは私がこのクラスを注入できるようにする」という意味ない「の注入はどんなデコレータが上にあるクラスへの許可」
を意味しています(これはデコレータが上にある)を 'where'のアプリケーションに「?
は、インジェクタによってクラスが作成可能であることを角度エンジンに知らせるマーカーです。実行時には、angleはすべての@Injectable
クラスを読み込み、それらをインスタンス化し、それらを参照するクラスに注入できるようにするためにInjectorsに指示します。
たとえば、UserService
という名前のサービスがあり、そのサービスをRegistrationComponent
というコンポーネントで使用する必要があるとします。
RegistrationComponent
コンストラクタに続い
@Injectable()
export class UserService {
saverUser(User user)
.....
}
がUserService
への参照入力パラメータを宣言し、それはもちろん、以前@Injectable
マーカーはUserService
RegistrationComponentに宣言する必要があり、UserServiceのがRegistrationComponent
に注入されるべきであること角度に伝えます。 @Component
がより同様の仕事を果たしている春の文脈では、TS
export class RegistrationComponent
constructor(private userService: UserService) { }
もちろん実装には多くの違いがありますが、どちらも同じような役割を果たします。 @Component
は、いくつかの特定のクラスが自動検出の候補とみなされる必要があり、そのクラスがSpringコンテナに存在することをSpringに知らせるアノテーションです。春のコンテナに住む成分(豆)は、他のクラスに注入することができます。
@Autowired
は、@Component
と同じではありません。 @Autowired
は、特定のクラスメンバをSpring DIコンテナによって提供または注入する必要があることを意味します。詳細については
以下のリンクを参照してください。
を