首页 > 其他分享 >在Abp中使用依赖注入

在Abp中使用依赖注入

时间:2023-03-14 14:11:06浏览次数:47  
标签:依赖 约定 PersonAppService Abp IPersonAppService 注册 注入

依赖注入是一种设计模式,这里主要讨论如何在 Abp 中使用依赖注入。

注册依赖项

在 Abp 中我们有很多种方法来注册依赖项,大多数情况下通过约定来注册依赖项就足够了。这也是 ASP.NET 中约定大于配置的一种体现。

通过约定注册依赖项

Abp 通过约定注册所有的 Repositories, Domain Services, Application Services, MVC Controllers 和 Web API Controllers,例如:

public interface IPersonAppService : IApplicationService
{
    //...
}
public class PersonAppService : IPersonAppService
{
    //...
}

Abp 自动注册这个服务,是因为 IPersonAppService 继承了 IApplicationService 接口。 IApplicationService 是一个空的接口,继承了 IApplicationService 的接口会被 Abp 注册, 这是一种约定。 IPersonAppService 会被注册成为 transient 的,每次使用都会创建新实例。在将 IPersonAppService 作为依赖项进行注入一个类的时候, IPersonAppService 的实现类 PersonAppService 则会被注入到那个类的构造函数中(采用构造函数注入时)。

利用约定来注册依赖项,命名约定很重要。例如我们可以将 IPersonAppService 的实现类 PersonAppService 的名字改成 MyPersonAppService 或其他包含 PersonAppService 后缀的名字,只有他们的后缀相同, Abp 才会将这个类注册成为 IPersonAppService 接口的实现类。如果这个实现类的名称不包含接口的后缀,例如 PeopleService ,那么Abp就不会将 PeopleService 注册成为 IPersonAppService 的实现类,而是将 PeopleService 注册成为自注册的类(可以理解为 PeopleService 是他自己的实现类)。

参考

ASP.NET Boilerplate Dependency Injection

 

转 https://blog.csdn.net/WuLex/article/details/120157316

标签:依赖,约定,PersonAppService,Abp,IPersonAppService,注册,注入
From: https://www.cnblogs.com/wl-blog/p/17214733.html

相关文章

  • 交易系统之数据库弱依赖解决方案
    作者:京东科技杜晓玉前言数据库,交易系统中最核心依赖,数据持久化属于最核心服务。随着互联网的普及,大流量高并发的场景越来越多,7*24的交易系统对高可用要求越来越高,同时在“......
  • SQL注入基础
    sql常见语句:1.select(查)*from表名:select*from表名2.insertinto(增):insertinto表名values(value1,value2…)3.delete(删除):deletefrom表名where字段名=v......
  • Maven导入本地依赖包
    mavenpom引入本地jar包在pom.xml同级目录下新建lib文件夹,并放入本地jar包。配置Jar包的dependency,包括groupId,artifactId,version三个属性,同时还要包含scope和systemPa......
  • SQL Injection(SQL注入)
    SQLInjection(SQL注入)  什么是SQL注入?SQL(结构化查询语言)注入,通常称为SQLi,是对Web应用程序数据库服务器的攻击,会导致执行恶意查询。当Web应用程序使用未经正......
  • 面向对象类图的六种关系(继承、实现、依赖、关联、聚合、组合)
    进行面向对象设计时,经常需要根据场景抽象出一些类,梳理各个类之间的关系,实现一个“低耦合,高内聚”的系统。下面通过学生、班级、教师、学校这些角色和场景,说明面向对象中,类......
  • SpringCloud -创建统一的依赖管理
    场景SpringCloud为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性Token,全居琐,Leader选举,分布式Session,集群状态)中快速构建的工具,使用Spring......
  • Autofac - 方法注入
    方法注入,其实就是在注册类的时候,把这个方法也注册进去.那么在生成实例的时候,会自动调用这个方法,真的会执行这个方法体内容的。这个方法可以认为不是正常的业务通用......
  • Autofac注入方式
    Autofac三种注入方式l 构造函数注入l 属性注入l 方法注入 实践项目结构在上节Autofac的快速入门的项目上改造。   添加ITestServiceB和TestServiceB......
  • PentestLab-web安全SQL注入-EXP2
    我们打开pentestlab靶机选择“sql  injections”选择“Example2”观察页面发现name是注入点使用工具测试sqlmap参数为pythonsqlmap.py-u"http://192.168.29.148/sqli/......
  • webview注入js
    js中与webview通信functionsetStyle(){console.log('1111')returnfunction(){console.log('2222')try{console.log('3333')//隐藏图......