首页 > 其他分享 >依赖注入

依赖注入

时间:2024-05-28 10:13:17浏览次数:18  
标签:容器 定位器 依赖 服务 对象 testService 注入

程序开始运行时,就要注册服务,管理服务,以便提供服务

将一系列创建流程打包成服务,交给容器来管理
三种生命周期:
1.瞬态,每个请求都创建一个新对象
2.范围:限定几个请求使用同一个对象,超过则创建新对象,   .net core默认一次http请求中后端所有请求都使用一个对象
3.单例:全局共享一个对象

这三种生命周期分别应用在什么场景下

注意容器中服务的服务类型和实现类型

推荐服务类型用接口类型

服务定位器和依赖注入的区别
获得想要的对象
服务定位器:通过调用方法
依赖注入:通过属性说明

1  using Microsoft.Extensions.DependencyInjection;
2  ServiceCollection services = new ServiceCollection();//创建用于注册服务的容器
3  services.AddTransient<TestServiceImpl>();//注册服务
4  using (ServiceProvider sp = services.BuildServiceProvider())//通过调用方法,获得容器服务提供者,这也是服务定位器方式
5  {//为什么这里需要手动释放资源
6      TestServiceImpl testService = sp.GetRequiredService<TestServiceImpl>();//通过调用方法,获得想要的对象
7      testService.Name = "tom";
8      testService.SayHi();
9  }

 

推荐使用注入接口服务,可以尝试注入实现服务

本质就是我们不需要自己取new 一个实例,将这个任务工作交给容器, 暂时觉得很鸡肋
一个接口,一个实现类, 一个控制器

 

 

 

标签:容器,定位器,依赖,服务,对象,testService,注入
From: https://www.cnblogs.com/cat-cat/p/18217093

相关文章

  • 记一次攻防演练中的若依(thymeleaf 模板注入)getshell
    记一次攻防演练中幸运的从若依弱口令到后台getshell的过程和分析。0x01漏洞发现首先,我会先把目标的二级域名拿去使用搜索引擎来搜索收集到包含这个目标二级域名的三级域名或者四级域名的网站。这样子可以快速的定位到你所要测试的漏洞资产。1、推荐三个比较实用的搜索引擎:奇......
  • npm下载依赖太慢?镜像源切换与设置!
    目录项目背景​编辑 接下来讲讲镜像源切换的两种设置模式]一、命令行模式1、查看当前镜像源2、删除镜像3、小结二、文件配置模式  常用的镜像项目背景依赖安装中断或响应特别慢。可以看到当前所用的镜像是https://registry.npmjs.org。 切换淘宝镜像之后......
  • Spring学习:AllArgsConstructor、RequiredArgsConstructor注入bean
    @NoArgsConstructor、@AllArgsConstructor、@RequiredArgsConstructor(搭配@FieldDefaults、@NonFinal)的区别以及在springboot常用地方 注解解释、区别:@NoArgsConstructor:生成无参的构造方法。@AllArgsConstructor:生成该类下全部属性的构造方法。(主讲)@RequiredArgsConstructo......
  • 【Spring】使用Spring常用导入依赖介绍
    当使用Spring框架时,以下是常用导入的依赖的详细介绍,按照不同的功能和类别进行分点表示和归纳:1、核心依赖SpringCore(spring-core)功能:提供了Spring框架的基础功能,包括IoC(控制反转)和DI(依赖注入)的基础支持。重要性:Spring框架的基石,任何Spring项目都需要。SpringBeans(spri......
  • AcWing 10. 有依赖的背包问题
    https://www.acwing.com/problem/content/description/10/有N个物品和一个容量是V的背包。物品之间具有依赖关系,且依赖关系组成一棵树的形状。如果选择一个物品,则必须选择它的父节点。如下图所示:QQ图片20181018170337.png如果选择物品5,则必须选择物品1和2。这是因为2是5......
  • LVS精益价值管理系统LVS.Web.ashx存在SQL注入漏洞
    漏洞描述LVS.web.AgencytaskList,LVS.web.ashx文件的GetColumnIndex方法卫队gridid参数进行充分的验证和转义,导致SQL注入。攻击者通过发送特制的POST请求,可以向数据库发送恶意的SQL语句,从而泄露数据库信息或执行任意SQL命令。fofabody="/ajax/LVS.Core.Common.STSResult,LVS.Co......
  • SeaCMS海洋影视管理系统dmku存在SQL注入漏洞
    漏洞描述SeaCMS海洋影视管理系统的'dmku'接口存在SQL注入漏洞,攻击者可以通过发送特制的HTTP请求,在未经授权的情况下向数据库注入恶意SQL代码,从而执行任意SQL语句。该漏洞利用了应用程序在处理GET请求参数时,没有对'id'参数进行充分的验证和过滤,导致可以通过改参数注入SQL代码fofa......
  • 铭飞CMS-search接口存在sql注入漏洞
    漏洞描述铭飞CMS是一款开源的内容管理系统,SQL注入漏洞存在于铭飞CMS的search接口处,当用户输入的内容未被充分过滤或转义时,攻击者可以在url中构造嵌入恶意的SQL语句,从而实现对数据库的操控fofabody="铭飞MCMS"||body="/mdiy/formData/save.do"||body="static/plugins/ms/1.0......
  • Vue3源码解析--收集的依赖是什么?怎么收集的?什么时候收集的?
    从Vue开始较大范围在前端应用开始,关于Vue一些基础知识的讨论和面试问题就在开发圈子里基本上就跟前几年的股票和基金一样,楼下摆摊卖酱香饼的阿姨都能说上几句那种。找过前端开发工作或者正在找开发工作的前端都知道,面试官基本上都有那么几个常问的问题,而网上呢也有那么一套可以用......
  • BUUCTF SSTI模板注入
    BUUCTFSSTI模板注入基础原理SSTI模板注入(Server-SideTemplateInjection),通过与服务端模板的输入输出交互,在过滤不严格的情况下,构造恶意输入数据,从而达到读取文件或者getshell的目的一般特征函数:render_template_stringSSTI_flask_labs可以看到数据被解析了,那么怎么注......