Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Container

依赖注入容器

根据控制反转的概念: Inversion of Control (IoC),Container 作为控制反转的容器,当你给容器提供一个 token 时,容器会自动的根据这个 token 值去注入对应的依赖,而这需要 @inject@injectable 去生成 metadata。

Hierarchy

  • Container

Index

Constructors

constructor

Properties

childContainers

childContainers: Container[] = []

Private graph

graph: Graph<InjectToken<any>> = new Graph<InjectToken>()

Optional parent

parent: Container

Private providerClasses

providerClasses: Map<InjectToken, ProviderClass<any>>

Private providers

providers: Map<InjectToken, Provider<any>>

Private services

services: Service[] = []

Methods

addFactory

addProvider

  • 为该容器注册一个 provider,每个 provider 需要提供 create 初始化方法,返回该 provider 注入的依赖。

    Type parameters

    • T

    Parameters

    Returns void

addService

  • 为该容器注册一个 Service Class,它的依赖会被自动解决,inject-js 也会创建它的实例注入给别人。

    Type parameters

    • T

    Parameters

    Returns void

addValue

  • 为该容器注册一个具体的值。可以是一个类的实例,也可以是基本类型。通常标识容器的一些配置。

    Type parameters

    • T

    Parameters

    Returns void

create

createChildContainer

destroy

  • destroy(): void
  • 销毁容器,以及容器里的所有 service,并调用所有 service 的 destroy() 方法(如果存在定义的话)。inject-js 会去分析已创建的所有 Service 实例,按照依赖的拓扑顺序,逆序小伙。如:A 依赖 B,B 依赖 C,则按照 A => B => C 的顺序依次调用它们的 destroy 方法。

    Returns void

getOrCreateProvider

getServices

getTokens

Generated using TypeDoc