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推荐的依赖设置方式,应该遵循任意一个模块(程序集)单独拿出均可引入至其他项目(而不用担心未设置它的依赖项)

  • 相关阅读:
    分布式唯一ID:雪花ID Snowflake .Net版
    jTopo HTML5 Canvas 画图组件
    运用四色建模法进行领域分析
    .netcore 分布式事务CAP2.6之控制台使用
    .netcore 分布式事务CAP2.6 快速入门
    .NetCore从零开始使用Skywalking分布式链路追踪系统
    Docker安装Skywalking APM分布式追踪系统
    ubuntu18.04安装docker
    github超级小白入门攻略
    记录AJAX充电点点滴滴
  • 原文地址:https://www.cnblogs.com/senyier/p/7306721.html
Copyright © 2011-2022 走看看