1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Abp vNext 模块化

Abp vNext 模块化

时间:2023-12-04 22:28:40

相关推荐

Abp vNext 模块化

Abp vNext

在Abp vNext框架当中呢,模块化管理可以说是最基本的要求,他把程序按照模块进行切分,模块之间也存在相互依赖的关系,当然模块切分可以按照业务,也可以按照功能,最后一个一个组装拼接成整个项目

Abp vNext模块化生命周期

每一次建立一个新的模块各模块之间都是相互独立的,都会进行 core 的服务注册等等操作。

在 core 原有的项目中,我们知道程序的启动项是基于startup里面的三大件进行服务注册,初始化,以及中间件等等操作的

而在abp.vnext当中呢,这些操作都留在了模块里面

在abp.vnext当中呢,所有的模块必须都去实现 AbpModule这个抽象类

namespace abp.vnext_module{//[DependsOn(typeof(DemoModule))] //确定模块之间的相互依赖关系public class DemoModule:AbpModule{/// <summary>/// 是将你的服务添加到依赖注入系统并配置其他模块的主要方法。/// </summary>public override void ConfigureServices(ServiceConfigurationContext context){//手动注入服务注入的地方Console.WriteLine("ConfigureServices");}public override void PreConfigureServices(ServiceConfigurationContext context){//SkipAutoServiceRegistration = true;//不需要自动注入 一般不这样操作Console.WriteLine("PreConfigureServices");}public override void OnPreApplicationInitialization(ApplicationInitializationContext context){Console.WriteLine("OnPreApplicationInitialization");}/// <summary>/// 初始化配置的所有模块的所有服务/// </summary>/// <param name="context"></param>public override void OnApplicationInitialization(ApplicationInitializationContext context){Console.WriteLine("OnApplicationInitialization");}public override void OnPostApplicationInitialization(ApplicationInitializationContext context){Console.WriteLine("OnPostApplicationInitialization");}/// <summary>/// 程序关闭 销毁模块/// </summary>/// <param name="context"></param>public override void OnApplicationShutdown(ApplicationShutdownContext context){Console.WriteLine("OnApplicationShutdown");}}}

看上面的执行顺序,

在真正执行的加载的时候,会先执行预加载 然后再执行ConfigureServices这个和 core 里面是一样的

最后在程序关闭的时候执行模块销毁

生命周期流程图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。