首页 > 其他分享 >生命周期

生命周期

时间:2024-06-21 19:21:12浏览次数:28  
标签:依赖 服务 请求 实例 作用域 生命周期 单例

生命周期有三种模式:瞬时(Transient)、作用域(Scoped)、单例(Singleton)

「瞬时,就是没有生存期。」

也就是说,每次从依赖注入系统中获取瞬时的服务实例时,都会创建一个全新的对象。

依赖注入系统中的服务容器不会保存它,也就是没有生存权的普通对象。

「单例,就是会一直存在,与应用同寿。」

也就是说,第一次从依赖注入系统中获取单例的服务实例时,才会创建一个全新的对象。

依赖注入系统中的服务容器会保存它,之后的每次使用都是直接从容器中获取它,也就是高贵的单例对象。

「作用域,理解起来没有那么直观,需要结合场景来说明。」

比如,在 ASP.NET 的应用中,每一个来自外部的请求,都可以理解为是一个请求作用域。不同的请求,就是不同的请求作用域。

在同一个请求作用域中,获取作用域模式的服务实例与单例模式的服务实例,具有同样的表现。

也就是说,第一次从依赖注入系统中获取服务实例时,才会创建一个全新的对象。

依赖注入系统会在服务容器中为该作用域开个单间,单独保存该对象。

当请求结束时,请求作用域会被销毁,单间自然也就没了,其中保存的对象也会随之销毁。

所以,在这种模式中生存的对象实例,都只作用于自己的域范围,不同的域不会互相干涉。

由此可见,服务一旦有了生命周期,那么依赖注入系统就可以根据需求,来保存和管理它们的实例。

学习链接:https://www.dongchuanmin.com/net/2009.html

标签:依赖,服务,请求,实例,作用域,生命周期,单例
From: https://www.cnblogs.com/zjh2003/p/18260131

相关文章

  • Django链接数据库,ORM迁移数据库,ORM操作之数据操作,Django框架之生命周期流程图,Djan
    ⅠDjango链接数据库默认的Django数据库是sqlite3链接MySQL数据库--->电脑上则会运行MySQL【一】下载数据库【二】在settings.py设置定义参数#链接MySQL数据库DATABASES={'default':{#指定我们使用的引擎是mysql数据库的引擎'ENGINE':'......
  • jvm必知必会-类的生命周期图文详解
    类的生命周期描述了一个从加载、使用到卸载的过程;而其中的连接部分又分为一下三个阶段:验证准备解析6.1加载阶段Loading阶段第一步是类加载器会根据类全限定名通过不同的渠道以二进制流的方式获取字节码信息,程序员可以使用Java代码扩展不同的渠道。比如通过......
  • 2024-06-17-Spring 源码阅读(三)Bean 的生命周期
    由于Spring源码非常多,博客中贴源码会占用大量篇幅,阅读困难。详细分析部分会以commit提交形式关联源码提交,画图例来说明源码整体逻辑。Bean生命周期主体逻辑相关代码:Bean的基本创建流程、lazyInit、循环依赖Bean对象创建基本流程通过最开始的关键时机点分析,我们知道Bean......
  • Spring容器系列-bean的生命周期
    Spring容器系列-bean的生命周期  bean的生命周期从调用beanFactory的getBean开始,到这个bean被销毁,可以总结为以下七个阶段:  1. 处理名称,检查缓存  2.处理父子容器  3.处理dependsOn  4.选择scope策略  5.创建bean  6.类型转......
  • Bean生命周期
    目录一、bean生命周期基本流程二、流程细节1、初始化方法和销毁方法1)自定义式:2)接口式3)声明式4)执行顺序2、InstantiationAwareBeanPostProcessor实例化后置处理器2、BeanPostProcessor初始化后置处理器3、xxxAware接口三、总结执行流程一、bean生命周期基本流程......
  • 【2】软件生命周期
    【一】为什么要测试?【1】软件的非正常运行(有些软件在电量低的情况下不能运行)或其自身的缺陷Bug会引发很多问题。【2】软件是由开发人员编写代码和文档组成的,是人都有可能犯错,测试的工作是需要对开发出来的软件进行测试。【3】环境也会影响软件,以致出现软件失效的现象。【4】测......
  • 名称空间,亲和性,pod生命周期,健康检查
    一、名称空间1、切换名称空间[root@masterpod]#kubectlcreatenstestnamespace/testcreated[root@masterpod]#kubectlgetnsNAMESTATUSAGEdefaultActive10hkube-node-leaseActive10hkube-publicActive10hkube-sy......
  • Unity的生命周期函数
    在Unity中,各个生命周期函数是在特定的时机被调用的,它们的执行顺序如下:1.Awake:当脚本实例被加载时调用,用于初始化数据。如果物体上有多个脚本,它们的Awake方法会在Start方法之前执行。2.OnEnable:当对象变为活动状态(enabled)或脚本被启用时调用。如果在场景加载后对象已经......
  • 【Kafka专栏 05】一条消息的完整生命周期:Kafka如何保证消息的顺序消费
    作者名称:夏之以寒作者简介:专注于Java和大数据领域,致力于探索技术的边界,分享前沿的实践和洞见文章专栏:夏之以寒-kafka专栏专栏介绍:本专栏旨在以浅显易懂的方式介绍Kafka的基本概念、核心组件和使用场景,一步步构建起消息队列和流处理的知识体系,无论是对分布式系统感兴趣,还......
  • Elasticsearch:简化数据流的数据生命周期管理
    作者:来自Elastic AndreiDan今天,我们将探索Elasticsearch针对数据流的新数据管理系统:数据流生命周期,从版本8.14开始提供。凭借其简单而强大的执行模型,数据流生命周期可让n你专注于数据生命周期的业务相关方面,例如降采样和保留。在后台,它会自动确保存储数据的Elastics......