zoukankan      html  css  js  c++  java
  • abp 模块系统

    abp模块系统:ABP理论学习之模块系统

    ABP提供了构建模块并将这些模块组合起来创建应用的基础设施。一个模块可以依赖另一个模块。一般来说,一个程序集可以认为是一个模块。一个模块是由一个派生了AbpModule的类定义的。

    ABP按照依赖的顺序调用这些方法。如果模块A依赖于模块B,那么模块B在模块A之前初始化。方法执行的正确顺序是:PreInitialize-B, PreInitialize-A, Initialize-B, Initialize-A, PostInitialize-B and PostInitialize-A。这对于所有的依赖图都是成立的。


        [DependsOn(
            typeof(AbpZeroCoreModule),
            typeof(AbpWebSignalRModule),
            typeof(AbpAutoMapperModule),
            //typeof(AbpHangfireModule), - ENABLE TO USE HANGFIRE INSTEAD OF DEFAULT JOB MANAGER
            typeof(AbpWebMvcModule),
            typeof(AbpZeroEntityFrameworkModule),
            typeof(AbpWebApiModule),
    
            typeof(EasymanCommonModule),//Easyman.Common
            typeof(EasymanCoreModule),//Easyman.Core
            typeof(EasymanApplicationModule),//Easyman.Application
            typeof(EasymanDataModule),//Easyman.EntityFramework
            typeof(EasymanViewMoudle),//Easyman.FwWeb
    
            typeof(EmProjectCommonModule),//Em.Project.Common
            typeof(EmProjectCoreModule),//Em.Project.Core
            typeof(EmProjectAppModule),//Em.Project.Application
            typeof(EmProjectDataModule),//Em.Project.EntityFramework
            typeof(EasymanWebApiModule)//Em.Project.WebApi
           )]
        public class EasymanWebModule : AbpModule{}
    View Code

    由于abp会根据设置模块依赖顺序加载初始化模块(DependsOn),

    那也可以这样做:在一个项目中,非web的moudle中不设置依赖项,而是去web目录下按照模块加载顺序去配置依赖项(参考以上代码块)

    但是,这不是abp推荐的依赖设置方式,应该遵循任意一个模块(程序集)单独拿出均可引入至其他项目(而不用担心未设置它的依赖项)

  • 相关阅读:
    Nginx进程信号管理
    Nginx配置缓存服务器
    访问Nginx显示目录
    kubeadm快速安装k8s
    《构建之法》读书笔记(一)
    Android Studio连接SQLite数据库与SQLite Studio实时同步的实现
    关于sqlite数据库与sqlite studio
    AS之去掉顶部标题栏
    今日学习
    AS之AlertDialog使用
  • 原文地址:https://www.cnblogs.com/senyier/p/7306721.html
Copyright © 2011-2022 走看看