2017-08-13 109 views

回答

0

@Injectable只是一个标记,告诉角引擎该类可以由注入器创建。在运行时的角度讲述到喷油器读取所有@Injectable类和实例化它们,使它们可被注入到引用它们的类。

例如,假设有一个名为UserService的角度服务,并且您需要在名为RegistrationComponent的组件中使用该服务。

@Injectable() 
export class UserService { 

    saverUser(User user) 
    ..... 
    } 

然后在RegistrationComponent构造声明引用到UserService输入参数,它告诉给角即UserService应注射到RegistrationComponent,当然先前的@Injectable标记应在UserService

RegistrationComponent声明。 TS

export class RegistrationComponent 

    constructor(private userService: UserService) { } 

在Spring上下文的@Component起着比类似的工作当然,在实施过程中他们之间有很多不同之处,但他们都起着类似的作用。 @Component是一个注释,告诉与Spring的一些具体的类必须被视为自动检测的候选,并且该类能生活在Spring容器。生活在Spring容器中的组件(bean)可以注入其他类。

@Autowired是不一样的@Component@Autowired意味着一个特定类的成员应当提供或由Spring DI容器注入。

欲了解更多信息,请参见以下链接:

Angular Dependency Injection

@Autowired Spring Documentation

@Component Spring Documentation