zoukankan      html  css  js  c++  java
  • 【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

    困了 待续..

  • 相关阅读:
    mysql连接数过多 解决方案
    单列模式下的数据库连接与Servlet之间页面访问用户登录的小例子
    Spring MVC理解和主要使用的注解详解
    Spring JDBC 框架中, 绑定 SQL 参数的另一种选择:具名参数(named parameter)
    xlwings
    openpyxl
    【python】Excel两表中某个信息对比
    pycharm中配置python版本问题
    python指令提示不是内部或外部命令(环境变量配置)
    python管理电脑文件及文件夹
  • 原文地址:https://www.cnblogs.com/xuxml/p/13887545.html
Copyright © 2011-2022 走看看