Steeltoe是一款开源项目,其目标是选取源自Netflix及其它公司的工具,使它们能够运用于.NET社区。它不仅可以在.NET Core上,也可以在.NET Framework 4.X以上使用。此外,大多数的组件能够同时运行在本地机器及Cloud Foundry(一个领先的云应用平台)之上。

Steeltoe基于Spring Cloud开发而成,它提供了数种类库包使得.NET开发者可以利用这些工具实现一些通用模式(比如中心化配置管理,服务发现,断路器等等),从而构建高度可扩展及具有弹性的分布式系统。通过Steeltoe,以及Spring Cloud,开发者能够快速建立实现这些模式的微服务和应用程序。

本文将介绍Steeltoe中用于中心化配置管理的客户端的组件。与之对应的Config Server是前文(初探Spring Cloud Config)中已经建立的。

ASP.NET Core应用

第一步,建立一个ASP.NET Core应用程序,可以使用空模板,然后手动添加Controller,View及appsettings.json文件和文件夹。

Package

想要使用这块功能的组件,首先需要安装对应的类库。

对于ASP.NET Core,使用Steeltoe.Extensions.Configuration.ConfigServerCore类库。

对于Console/ASP.NET 4.x,使用Steeltoe.Extensions.Configuration.ConfigServerBase类库。

Program.cs

在Program类中,利用IWebHostBuilder的扩展方法添加ConfigServer。

public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.AddConfigServer()
.UseStartup<Startup>();
}

appsettings.json

在appsettings.json文件里添加Config Server的URI地址。

{
"spring": {
"cloud": {
"config": {
"uri": "http://localhost:9555"
}
}
}
}

获取配置

通过依赖注入方式,在Controller中得到Configuration,并从中取得message的值。这里假设在Config Server的配置仓库里已经设置了message值为Hello, Steeltoe Configuration

public class HomeController : Controller
{
public IConfiguration Configuration { get; set; } public HomeController(IConfiguration configuration)
{
Configuration = configuration;
}
public IActionResult Index()
{
ViewData["message"] = Configuration["message"];
return View();
}
}

显示配置

在cshtml页面中显示message值。

@{
ViewData["Title"] = "Home";
} @ViewData["message"]

结果

先启动Spring Cloud的Config Server,再启动上面的.NET Core代码,结果如下:

Steeltoe之Config客户端篇的更多相关文章

  1. spring cloud config客户端

    上篇介绍了spring cloud config服务器,本篇介绍客户端.客户端主要是从config服务器获取配置信息. 代码示例 首先创建一个Maven项目,在pom.xml文件中添加依赖: < ...

  2. 实现SpringCloud Config 客户端自动刷新

    文章来源:https://blog.csdn.net/qq_27385301/article/details/82716218 一.简介 在使用SpringCloud Config客户端时,如果Con ...

  3. Nacos Config客户端与Spring Boot、Spring Cloud深度集成

    目录 Nacos与Spring Boot集成 @NacosPropertySource和@NacosValue com.alibaba.nacos.spring.core.env.NacosPrope ...

  4. Spring Cloud Config应用篇(九)

    一.SpringCloud Config 配置中心 1.1.配置中心说明 SpringCloud Config 服务器以下简称"配置中心". Spring Cloud Config ...

  5. CloudNotes之桌面客户端篇:插件系统的实现

    [CloudNotes版本更新历史与各版本下载地址请点击此处] [CloudNotes中文系列文章汇总列表请点击此处] [查看CloudNotes源代码请点击此处] 有时候,同一个名词,针对不同的人群 ...

  6. CloudNotes之桌面客户端篇:增强的笔记列表

    今天,我发布了CloudNotes的一个更新版本:1.0.5484.36793.这个版本与1.0.5472.20097不同的是,它拥有增强的笔记列表,与之前单调的列表系统相比,新的笔记列表不仅可以显示 ...

  7. C# 客户端篇之实现Restful Client开发(RestSharp帮助类)

    上篇文章<C# 服务端篇之实现RestFul Service开发(简单实用)>讲解到,如果开发一个简单的Restful风格的Service,也提到了简单创建一个Restful Client ...

  8. Steeltoe之Service Discovery篇

    在前文一窥Spring Cloud Eureka中,已经构建了基于Eureka的服务端与客户端,可用于实现服务注册与发现功能.而借助Steeltoe的类库,可以在.NET生态系统中使用Spring C ...

  9. CloudNotes之桌面客户端篇:笔记撰写样式的支持

    最近在CloudNotes桌面客户端中新增了笔记撰写样式的功能.当用户新建笔记的时候,可以在输入笔记标题的同时,选择笔记撰写样式,由安装包默认提供的样式主要有默认样式(Default).羊皮纸样式(L ...

随机推荐

  1. 手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis

    在写代码之前我们先了解一下这三个框架分别是干什么的? 相信大以前也看过不少这些概念,我这就用大白话来讲,如果之前有了解过可以跳过这一大段,直接看代码! SpringMVC:它用于web层,相当于con ...

  2. webpack中file-loader和url-loader的关系

    url-loader把资源文件转换为URL,file-loader也是一样的功能. 不同之处在于url-loader更加灵活,它可以把小文件转换为base64格式的URL,从而减少网络请求次数.url ...

  3. 【Windows】cmd条件判断

    1.判断驱动器.文件或文件夹是否存在,用 if exist 语句: 2.判断某两个字符串是否相等,用 if "字符串1"=="字符串2" 语句: 3.判断某两个 ...

  4. IDEA使用笔记(六)——设置项目的JDK配置

    1:由于dev分支和master分支的代码差异比较多,所以,就从master上分出一个新的分支dev_,于是我就克隆新的代码,打开对应的项目文件,然后启动试试,发现报出如下的错误,很明显是因为没有制定 ...

  5. swoole+Redis实现实时数据推送

    <?php /** * *************************************** * 单进程保护 * * ********************************* ...

  6. Java定时任务示例

    package com.my.timer; import java.util.Date; import java.util.TimerTask; public class myTask extends ...

  7. c#中的 virtual override 和abstract 以及sealed

    1.如果父类方法没有加virtual关键字,即不是一个虚方法,则在子类中只能隐藏基类方法,而不能覆盖. 2.如果父类方法加了virtual关键字,即它是一个虚方法,在子类中一样可以隐藏. 3.如果子类 ...

  8. GC调优在Spark应用中的实践[转]

    作者:仲浩   出处:<程序员>电子刊5月B   摘要:Spark立足内存计算,常常需要在内存中存放大量数据,因此也更依赖JVM的垃圾回收机制.与此同时,它也兼容批处理和流式处理,对于程序 ...

  9. 【XMPP】基于XMPP的即时通讯解决方案

    什么是XMPP 介绍XMPP之前,先来看看GTalk. GTalk是Google推出的IM(Instant Messaging,即时通讯)软件,类似于QQ和MSN. 从技术角度来说,GTalk与QQ和 ...

  10. VS2013 未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService

    全是2012版本的  没找到2013的! 控制面板>程序>程序和功能 找到如下选中软件右击修复 即可 需关闭VS2013 参考:https://blog.csdn.net/zhaoyun9 ...