2017-08-13 3 views

答えて

0

は、インジェクタによってクラスが作成可能であることを角度エンジンに知らせるマーカーです。実行時には、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コンテナによって提供または注入する必要があることを意味します。詳細については

以下のリンクを参照してください。

Angular Dependency Injection

@Autowired Spring Documentation

@Component Spring Documentation

関連する問題