前言

个人理解

abp这个设置管理时基于服务器缓存实现,使用得时string类型得键值对(建值都是string类型)。通过设置器(SettingProvider)注入,在站点启动时读取配置文件或者数据库或者自己生成一个(下面例子便是自己生成,服务器重启设置重置)。

这样的好处是不需要频繁的读取数据库或者本地文件,想想缓存的好处,同理可得。而且在此基础上abp还封装了些方法,使用方便。就是个人觉得配置起来有点麻烦。因为的键值对,所有建不能有重复,常常使用const 常量来定义建。

使用

提供设置

public class MySettingProvider : SettingProvider

{

public override IEnumerable GetSettingDefinitions(SettingDefinitionProviderContext context)

{

return new[]

{

new SettingDefinition(

"SmtpServerAddress",

"127.0.0.1"

),

new SettingDefinition(

"PassiveUsersCanNotLogin",

"true",

scopes: SettingScopes.Application | SettingScopes.Tenant

),

new SettingDefinition(

"SiteColorPreference",

"red",

scopes: SettingScopes.User,

isVisibleToClients: true

)

};

}

}

注入设置

在CoreModule中得PreInitiali方法里注入,一般需要注入得内容都在这里注入。

Configuration.Settings.Providers.Add();

服务端获取设置

SettingManager 在AbpServiceBase基类定义了得

var value1 = await SettingManager.GetSettingValueAsync("SmtpServerAddress");

客户端获取

如果SettingDefinition 中 IsVisibleToClients 设置为 true,就可以在客户端使用 javascript得到它的当前值。abp.setting 命名空间定义所需的函数和对象。

var currentColor = abp.setting.get("SmtpServerAddress");

修改设置

SettingManager 在AbpServiceBase基类定义了得

await SettingManager.ChangeSettingForApplicationAsync("SmtpServerAddress", "192.168.0.1");

小结

上面例子和官网提供得例子差异不大,省略了些东西。

如何读取本地配置文件,修改时并持续化到本地文件

abp的设置管理,是将配置放到了数据库中,不用手动创建记录,如上配置后,使用过程中自动创建。看表结构明白,可支持针对用户或者租户单独做配置。不支持文件类型的配置。

image.png

image.png

如何读取数据库数据,修改时持续化的数据库

同上,不支持自定义表实现的配置。

既然value字段是string类型,我们当然也可以将对象序列化成string存起来。使用时再序列化成对象。

abp项目怎样发布到服务器,ABP框架学习之—— 设置管理相关推荐

  1. abp项目怎样发布到服务器,ABP框架的基础配置及依赖注入讲解

    配置ABP 配置是通过在自己模块的PreInitialize方法中来实现的 代码示例如下: ? 和orchard类似,abp框架一开始就被设计成模块化的,不同的模块可以通过abp框架来进行配置.举个例 ...

  2. abp项目怎样发布到服务器,ABP 网站发布

    报错1:HTTP Error 503. The service is unavailable. 解决:IIS->应用程序池->高级设置->进程模型->标识.将内置账户更改为Ne ...

  3. Vue - vue+webpack创建的项目打包发布至服务器,页面空白及背景图片不显示问题解决

    vue+webpack创建的项目打包发布至服务器,页面空白及背景图片不显示问题解决 一. 页面显示空白 二. 背景图片不显示 一. 页面显示空白 解决方法: config > index.js ...

  4. idea打包项目并发布到服务器上

    1.通过idea将完整的项目打包成war包 2.将war包放到tomcat的webapps目录下 3.访问服务器项目测试是否发布成功

  5. 【abp项目发布到iis(初学者)】

    abp项目发布到iis(vs2022) 右击发布的项目–发布–选择要发布的目标文件夹–发布 发布成功–打开iis 右击网站–添加网站 网站名称最好填项目名称,应用程序池注意不可多个使用,物理路径填前面 ...

  6. 使用 docker 编译运行 abp 项目

    在前面的两篇文章中,介绍了如何在华为鲲鹏架构及其Euler系统上运行dotnet core, 使用docker运行了默认的mvc模板项目,这篇文章继续介绍在docker中运行更复杂的dotnet co ...

  7. abp框架java,【Net】ABP框架学习之正面硬钢

    前言 本文介绍另一种学习ABP框架的方法,该方法为正面硬钢学习法... 我们不去官网下载模板,直接引用DLL,直接使用. WebApi项目创建 首先创建一个WebApi项目,结构如下. 然后Nuget ...

  8. 网络与服务器编程框架库 acl_3.0.13 发布

    2019独角兽企业重金招聘Python工程师标准>>> acl 3.0.13 版本 (项目主页:https://sourceforge.net/projects/acl/,技术文章主 ...

  9. 网络与服务器编程框架库 acl_3.0.12 发布

    2019独角兽企业重金招聘Python工程师标准>>> acl 3.0.12 版本 (项目主页:https://sourceforge.net/projects/acl/,  技术文 ...

最新文章

  1. C++:报错解决合集
  2. mysql从另一张获取数据的方法
  3. Nhibernate常见的错误
  4. 删除mongodb库
  5. oralce 11g data guard
  6. webcomponents安装了没有用_Web Components 入门实例教程
  7. ug弹簧可变性装配_弹簧可配置魔术
  8. Java抽象– ULTIMATE教程(PDF下载)
  9. DataWorks百问百答01:数据同步该用什么资源组
  10. Java字符串与日期互转
  11. Web网站压力测试工具
  12. 秒杀/抢购系统设计优化
  13. 三菱plc pwm指令_三菱PLC必会编程指令汇总,收藏这些就够了!
  14. 智慧城市是什么?为什么要建智慧城市?
  15. MFC 通用对话框之字体对话框
  16. html完全自学手册,完全自学手册PHP+Ajax(PPT) 第3章 HTML基础.ppt
  17. 5.服务网关:GateWay
  18. 计算机键盘上的基准键是哪两个键,键盘上的基准键分别是什么?
  19. $Linux vi/vim编辑器常用命令与用法总结
  20. python randint什么分布_python随机数分布random均匀分布实例

热门文章

  1. 三一集团数字化转型探秘:以DevOps平台构建敏捷研发体系
  2. 招聘大师v6.7.2
  3. 那些让你惊掉下巴到肚皮上的python冷知识(一)
  4. esp8266作为wifi与手机互传数据
  5. Can't bind to local 8700 for debugger报错和解决
  6. 计算机毕业设计ssm校内图书馆智能管理系统
  7. 【3D动态思维导图制作软件】万彩脑图大师教程 | 给思维导图设置密码
  8. Vue 3.3 正式发布 [浪客剑心]
  9. css 浮动在最上层_css样式如何控制div到最顶层
  10. 广州非按揭购房提取住房公积金攻略