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

前言

个人理解

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

93c20c017373?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

93c20c017373?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

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

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

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

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2021 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值