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

posted on 2017-08-08 14:39  儿时精神  阅读(305)  评论(0编辑  收藏  举报

导航