zoukankan      html  css  js  c++  java
  • 对三种依赖注入生命周期的理解

    参考资料:
    https://www.yoyomooc.com/yoyomooc/aspnet-core-for-beginners-Dependency-Injection
    https://www.yoyomooc.com/yoyomooc/44.AddSingletonvsAddScopedvsAddTransient

    AddSingleton()

    文档中:
    AddSingleton()方法创建一个Singleton服务。首次请求时会创建Singleton服务。然后,所有后续请求都使用相同的实例。因此,通常,每个应用程序只创建一次Singleton服务,并且在整个应用程序生命周期中使用该单个实例。

    个人理解:每个项目跑起来之后,一旦生命周期为Singleton的服务被创建出来,就一直使用这一个,直到项目被停止运行或者删除,这个服务就被销毁。

    AddTransient()

    文档中:
    AddTransient() 方法可以称作:暂时性模式,会创建一个 Transient 服务。每次请求时,都会创建一个新的 Transient 服务实例。

    个人理解:用户的每一个HTTP请求,使用到了一个生命周期为Transient的服务,这个服务就被创建一次,使用完成后销毁。

    AddScoped()

    文档中:
    AddScoped()方法创建一个 Scoped 服务。在范围内的每个请求中创建一个新的 Scoped 服务实例。例如,在 Web 应用程序中,它为每个 http 请求创建 1 个实例,但在同一 Web 请求中的其他调用中使用相同的实例,在一个客户端请求中是相同的,但在多个客户端请求中是不同的。

    个人理解:客户端A使用该软件时,使用生命周期为Scoped的服务,只创建一次,客户端A结束Web访问后被销毁。客户端A与客户端B同时使用该服务时,是创建的两个服务,并不共用一个。

    因为我的开发经验很少,对这几种生命周期基本没有自己的理解,如果我理解错了,希望朋友们可以在评论区中提醒我,谢谢大家。后续我有更正确的理解或者更详细的理解,会补充在博客中。

    总结

    UTOOLS1593271219212.png

    UTOOLS1593271350812.png

  • 相关阅读:
    梦断代码阅读笔记02
    第三周
    第二周
    《大道至简》阅读笔记
    暑假第一周
    hdu-1237简单计算器(栈的运用)
    玩骰子(概率,暴力)
    hdu-5568SUM (dp)
    codeforce-600C. Make Palindrome(贪心)
    codeforce-601A. The Two Routes(最短路)
  • 原文地址:https://www.cnblogs.com/Kit-L/p/13183714.html
Copyright © 2011-2022 走看看