跳转至

生命周期(Lifetime)

symphra_container.types.Lifetime

Bases: Enum

服务生命周期类型枚举.

定义了服务实例在容器中的生命周期管理策略:

属性:

名称 类型 描述
SINGLETON

全局单例,容器中只有一个实例

TRANSIENT

瞬时模式,每次解析都创建新实例

SCOPED

作用域模式,同一作用域内共享实例

FACTORY

工厂模式,使用工厂函数创建实例

示例:

>>> container.register(UserService, lifetime=Lifetime.SINGLETON)
>>> service1 = container.resolve(UserService)
>>> service2 = container.resolve(UserService)
>>> assert service1 is service2  # 同一实例
Source code in src/symphra_container/types.py
class Lifetime(Enum):
    """服务生命周期类型枚举.

    定义了服务实例在容器中的生命周期管理策略:

    Attributes:
        SINGLETON: 全局单例,容器中只有一个实例
        TRANSIENT: 瞬时模式,每次解析都创建新实例
        SCOPED: 作用域模式,同一作用域内共享实例
        FACTORY: 工厂模式,使用工厂函数创建实例

    Examples:
        >>> container.register(UserService, lifetime=Lifetime.SINGLETON)
        >>> service1 = container.resolve(UserService)
        >>> service2 = container.resolve(UserService)
        >>> assert service1 is service2  # 同一实例
    """

    # 单例生命周期 - 全局唯一
    SINGLETON = auto()

    # 瞬时生命周期 - 每次新建
    TRANSIENT = auto()

    # 作用域生命周期 - 作用域内共享
    SCOPED = auto()

    # 工厂生命周期 - 工厂函数创建
    FACTORY = auto()