一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - .Net Core實現選擇數據熱更新讓服務感知配置的變化

.Net Core實現選擇數據熱更新讓服務感知配置的變化

2021-12-08 15:26吳政恒 ASP.NET教程

這篇文章主要介紹了.Net Core實現選擇數據熱更新讓服務感知配置的變化,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1、說明

當一些配置需要修改在進行獲取時,通常做法是修改完配置文件后再重啟web服務器或者docker進行完成,下面我介紹一種熱更新方法,修改完配置文件后,不需要重啟服務器即可獲取最新的配置文件,讓服務感知配置的變化。

2、實踐

下面我通過二種方式來講解一下.Net Core實現選擇數據熱更新,讓服務感知配置的變化。

2.1 通過AddSingleton單例方式注入,然后使用 IOptionsMonitor實現數據熱更新

2.1.1 首先在Startup.cs文件中的ConfigureServices方法添加配置

.Net Core實現選擇數據熱更新讓服務感知配置的變化

//通過讀取配置文件加載到SystemPath類中
services.Configure<SystemPath>(Configuration.GetSection("SystemPath"));
//添加服務注入
services.AddSingleton<IPathService, PathService>();
public class SystemPath
  {
    public string FilePath { get; set; }
  }

2.1.2 在PathService構造器中注入IOptionsMonitor<SystemPath>實現數據熱更新

public class PathService : IPathService
  {
    IOptionsMonitor<SystemPath> _options;
    /// <summary>
    /// 構造函數
    /// </summary>
    /// <param name="blogData"></param>
    public PathService(IOptionsMonitor<SystemPath> options)
    {
      _options = options;
    }
    public string GetPath()
    {
      return _options.CurrentValue.FilePath;
    }
  }

2.1.3 在PathController中通過調用接口方式讀取最新配置路徑

/// <summary>
  /// 路徑
  /// </summary>
  [Route("api/[controller]/[action]")]
  [ApiController]
  public class PathController : ControllerBase
  {
    private readonly IPathService _pathService;
    /// <summary>
    /// 構造函數
    /// </summary>
    /// <param name="pathService"></param>
    public PathController(IPathService pathService)
    {
      _pathService = pathService;
    }
    /// <summary>
    /// 獲取系統路徑
    /// </summary>
    /// <returns></returns>
    [HttpGet]
    public MethodResult GetSystemPath()
    {
      return new MethodResult(_pathService.GetPath());
    }
  }

運行看一下效果:

.Net Core實現選擇數據熱更新讓服務感知配置的變化

現在讀取到的路徑是D:/File/2.jpg,我們修改一下配置文件然后重新調用接口看一下,這時會更新最新的路徑。

.Net Core實現選擇數據熱更新讓服務感知配置的變化

 .Net Core實現選擇數據熱更新讓服務感知配置的變化

2.2 通過AddScoped 方式注入,然后使用 IOptionsSnapshot 實現數據熱更新

2.2.1 首先在Startup.cs文件中的ConfigureServices方法添加配置

.Net Core實現選擇數據熱更新讓服務感知配置的變化

//通過讀取配置文件加載到SystemPath類中
services.Configure<SystemPath>(Configuration.GetSection("SystemPath"));
//添加服務注入
services.AddScoped<IPathService, PathService>();
public class SystemPath
  {
    public string FilePath { get; set; }
  }

2.2.2 在PathService構造器中注入IOptionsMonitor<SystemPath>實現數據熱更新

public class PathService : IPathService
  {
    IOptionsSnapshot<SystemPath> _options;
    /// <summary>
    /// 構造函數
    /// </summary>
    /// <param name="blogData"></param>
    public PathService(IOptionsSnapshot<SystemPath> options)
    {
      _options = options;
    }
    public string GetPath()
    {
      return _options.Value.FilePath;
    }
  }

2.2.3 在PathController中通過調用接口方式讀取最新配置路徑

/// <summary>
  /// 路徑
  /// </summary>
  [Route("api/[controller]/[action]")]
  [ApiController]
  public class PathController : ControllerBase
  {
    private readonly IPathService _pathService;
    /// <summary>
    /// 構造函數
    /// </summary>
    /// <param name="pathService"></param>
    public PathController(IPathService pathService)
    {
      _pathService = pathService;
    }
    /// <summary>
    /// 獲取系統路徑
    /// </summary>
    /// <returns></returns>
    [HttpGet]
    public MethodResult GetSystemPath()
    {
      return new MethodResult(_pathService.GetPath());
    }
  }

運行看一下效果:

.Net Core實現選擇數據熱更新讓服務感知配置的變化

現在讀取到的路徑是D:/File/2.jpg,我們修改一下配置文件然后重新調用接口看一下,這時會更新最新的路徑。

.Net Core實現選擇數據熱更新讓服務感知配置的變化

 .Net Core實現選擇數據熱更新讓服務感知配置的變化

到此這篇關于.Net Core實現選擇數據熱更新讓服務感知配置的變化的文章就介紹到這了,更多相關.Net Core數據熱更新內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/ZhengHengWU/p/13197820.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产免费又粗又猛又爽视频国产 | 97爱干| 99久在线 | 波多野结衣两女调教 | 男人扒开女人下身添 | 日韩欧美视频二区 | 啪啪无尽3d动漫漫画免费网站 | 日本九九热 | 天天做日日做天天添天天欢公交车 | eeuss免费快捷 | 韩国最新理论片奇忧影院 | 欧美三级小说 | 免费理伦片高清在线 | 91精品国产综合久 | 失禁尿丝袜vk | 欧美一级片免费看 | 欧美精品v欧洲高清 | 久久视频精品3线视频在线观看 | 久热这里只有精品99国产6 | 国士李风起全文在线阅读 | 99在线观看视频免费精品9 | 99这里只有精品在线 | 日韩精品成人a在线观看 | 精品第一国产综合精品蜜芽 | 日本男女视频 | 国内精品视频一区二区三区 | 亚洲欧美精品一区天堂久久 | 盲井在线 | 无耻三级在线观看 | 成人网址大全 | 欧美日韩国产精品va | 幻女free性zozo交体内谢 | 欧美怡红院视频一区二区三区 | 色先锋影音先锋 | 国产微拍精品一区 | 星球大战成人h无删减版 | 亚洲精品m在线观看 | 日韩视频在线免费观看 | 国内视频一区二区三区 | 俄罗斯妈妈k8影院在线观看 | 五月香婷 |