日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

【VoloAbp】1.理解AbpModule,模块加载机制

發布時間:2023/12/13 综合教程 48 生活家
生活随笔 收集整理的這篇文章主要介紹了 【VoloAbp】1.理解AbpModule,模块加载机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們從0開始搭建一個Abp模塊。

1.首先我們新建一個空的dotnet項目

2.新版的Abp都掛載在Volo這家公司。所以所有的包都以Volo作為前綴進行命名,如下圖所示

3.如何進行模塊加載 ,其實它的核心在于 AbpModule。那么,我們就安裝一下Volo.Abp.Core這個包一探究竟。安裝完之后,我們如下圖所示新建一個類。在實際開發過程中,這個就可以作為一個松耦合的功能模塊了。

4.繼承了AbpModule這時候,我們就可以F12過去看看 這里面有什么東西了。當然想看它的具體實現可以去看看源碼。我這邊描述一下這里面的東西是干什么用的。

之前說了,每一個module都是一個功能點,那么每一個模塊都有它的配置信息。

所以這里的Configure方法 就是做模塊配置可以實現每一個模塊有每一個模塊的連接字符串,已經一些自定義的你想要的配置

這里提供了6個虛方法來自于繼承的6個事件接口,面向對象里有一個SOLID 設計模式,接口隔離的原則,不同節點提供不同接口所以這里繼承了這6個接口,重寫后,abp會訂閱到你在模塊加載的不同生命周期節點 寫在里面的方法,并執行它。

不過這里最重要的還是 ConfigureServices 這個方法,這個方法來自于IAbpModule接口,那么我們看看IAbpModule接口,其實并不陌生,它在Asp .net core里面就是配置容器的方法。

因此,我們就可以通過這個方法向容器中注入當前模塊所有的服務,ABP的這種方式,把原先那種雜而亂一次性把整個系統的服務加載到容器中,替換成自己的模塊配置自己的依賴注入,和依賴信息,這樣也達到了獨立開發的目的。

上圖所示,我們可以在ConfigureServices里添加自己想添加的,到容器中。

在 OnApplicationInitialization方法里做 模塊初始化時 你自定義的事件。

5.創建完模塊之后,我們可以構建一個ABP引擎。abp提供了一個工廠

這里必須要調用初始化。

6.然后我們來看看ABP的依賴注入。和其他IOC一樣。接口+實現

APB的有很多的約定,ABP 提供了自動依賴注入的接口,多例注冊 ITransientDependency,范圍注冊IScopedDependency,單例注冊ISingletonDependency

像上圖所示使用。

然后就可以去容器中解析出來

7.abp模塊就這樣吧。接下來我們看一下Volo.Abp.Core 的源碼

我這邊分別講一下這個包引用的那么多庫的功能。當然不會細講

首先是這2個

ConfigureAwait.Fody =》https://www.cnblogs.com/fmys/p/13034664.html

Fody =》攔截visual 屎丟丟的行為,可以在編譯過程中注入你想要的操作。

JetBrains.Annotations=》用過ReSharper的同學們,一定知道,用來標記參數檢測[NotNull]

Microsoft=》這部分的就不講了。可以參考蔣金楠的博客園講Core的部分

Nito.AsyncEx.Context

Nito.AsyncEx.Coordination => 這兩個包 的主要功能是把異步方法改成同步的調用。我們開發過程中,會用到的場景有,使用Lock時。

因此我們可以用上這個包的方法。

項目的地址是https://gitee.com/xuxml/volo-abp-first

困了 待續..

總結

以上是生活随笔為你收集整理的【VoloAbp】1.理解AbpModule,模块加载机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。