Admin.NET源码学习(4:基于Furion的后台服务启动方式浅析)

2024-08-23 10:28

本文主要是介绍Admin.NET源码学习(4:基于Furion的后台服务启动方式浅析),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  Admin.NET为前后端分离架构,后台服务的入口项目为Admin.NET.Web.Entry,其与其它项目的依赖关系如下图所示。
在这里插入图片描述
  由于项目采用Furion框架,后台服务启动方式、注册方式、配置方式等方面与常规的asp.net core项目差异明显,初步接触可能很不习惯,需要学习furion的基本用法才能看明白后台服务启动方式。
  首先是配置文件,Furion支持获取任何项目层根目录下的json文件,然后自动合并所有分散的配置文件。除此之外,还支持在启动项目的appsettings.json文件中配置ConfigurationScanDirectories参数,指定配置文件目录集合,Furion启动时会自动导入并合并这些文件夹中的配置文件信息。
在这里插入图片描述
  其次为启动方式,基于Furion框架,只需在启动项目的program.cs文件中调用Serve.Run即可达到常规启动文件的效果,按照Furion帮助文档的说法:“Serve.Run() 已经包含了基本的 WebAPI 功能,包含动态 WebAPI,跨域 等等”。Admin.NET项目的program.cs文件中使用了组件化启动方式,如下图所示。启动时调用的WebComponent组件继承自IWebComponent接口,该接口的Load函数等效于调用WebApplicationBuilder注册中间件。
在这里插入图片描述
  最后是Startup文件,除了Admin.NET.Web.Entry和Admin.NET.Core项目,每个项目都包含继承自AppStartup的Startup类。Furion框架支持AppStartup启动,也即所有启动项目直接引用或间接应用的项目中继承自AppStartup类的Startup类都会被自动加载运行,所在的项目层没有被启动层直接或间接添加引用。Furion帮助文档的解释是避免集中配置或修改启动项目中的Startup类,而是每个项目只需关系自身项目中所需注册及使用的服务即可。
  最后一点是GlobalUsings机制。从.NET6开始,微软新增了 GlobalUsings 机制,Admin.NET的不少项目根目录下都存在GlobalUsings.cs文件,其内是一组项目各代码文件共用的using语句,项目内其它cs文件不需要再次添加using声明,可以减少代码量。
  关于上述内容更详细的说明请见参考文献3,本文仅是学习Furion的粗浅理解。

参考文献:
[1]https://github.com/zuohuaijun/Admin.NET
[2]http://101.43.53.74:5050/introduce/
[3]https://furion.net/docs/

这篇关于Admin.NET源码学习(4:基于Furion的后台服务启动方式浅析)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1099117

相关文章

Java数组初始化的五种方式

《Java数组初始化的五种方式》数组是Java中最基础且常用的数据结构之一,其初始化方式多样且各具特点,本文详细讲解Java数组初始化的五种方式,分析其适用场景、优劣势对比及注意事项,帮助避免常见陷阱... 目录1. 静态初始化:简洁但固定代码示例核心特点适用场景注意事项2. 动态初始化:灵活但需手动管理代

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

浅析Java中如何优雅地处理null值

《浅析Java中如何优雅地处理null值》这篇文章主要为大家详细介绍了如何结合Lambda表达式和Optional,让Java更优雅地处理null值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录场景 1:不为 null 则执行场景 2:不为 null 则返回,为 null 则返回特定值或抛出异常场景

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe