依赖注入的 Singleton、Scoped、Transient

依赖注入可以这么理解,就是一个盒子预先注入了很多服务。
用户每次HTTP请求都会从盒子里拿相关服务(即实例),都是新的服务(Singleton的服务除外),然后当前请求进入某个controller中某个方法体内进行操作。
在这个方法体内或之间,如果再次向盒子要服务,这样就会出现三种情况:
1. Singleton的服务,每次拿都一样,无论那次请求
2. Scoped的服务,也是每次拿都一样,但只局限在本次请求中
3. Transient的服务,即每次拿都不一样

盒子的作用:

盒子获得了服务的控制权,即控制反转(Ioc),服务不再由程序主动去创建了,而是在盒子里注册。

盒子能主动使用已经注册的服务,为依赖服务的类进行实例注入,即依赖注入(DI)。

原文地址:https://www.cnblogs.com/yipeng-yu/p/15137537.html