NetCore Api 读取Apollo配置
最近学习了一下Apollo,自己也尝试去读取相应配置,虽然公司这些东西都搭建好了,而且网上也有相应资料,但是好记性不如烂笔头,自己写一下。
我自己家里电脑还没有把Apollo搭建起来,所幸在网上找到个官方Demo网站,不用自己搭建,学习下也是不错的。这是链接:http://106.54.227.205/
还有其他地址,我也一并附上 https://gitee.com/apolloconfig/apollo https://gitee.com/apolloconfig/apollo#https://gitee.com/link?target=http%3A%2F%2F106.54.227.205%2F 上面的地址可以在这里找到
然后就进去创建NameSpace,AppId之类的,我也搞了好久,具体步骤也忘了,大概说下
1:创建应用
进去是这样的,
appid自己填,是唯一的。
2:进入创建你的namespace,这里我已经创建好了
配置增加了记得点发布!
ok到这里Apollo配置就完了。接下来是代码
创建一个Api的项目,Nuget引入两个包
Com.Ctrip.Framework.Apollo
Com.Ctrip.Framework.Apollo.Configuration
然后可以在startup里面修改代码,代码如下
public Startup(IWebHostEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", false, true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", false, true); Configuration = builder.Build(); builder.AddApollo(Configuration.GetSection("apollo")) .AddDefault() .AddNamespace(Configuration["apollo:Namespace"]); Configuration = builder.Build(); Console.WriteLine($"AppId is {Configuration["apollo:AppId"]},MetaServer is {Configuration["apollo:MetaServer"]}, Namespace is {Configuration["apollo:Namespace"]}"); //Configuration = configuration; }
配置文件里面配置如下(生产环境配置文件名称是appsettings.Development.json):
{ "apollo": { "AppId": "fanlinTest", "MetaServer": "http://106.54.227.205:8080", "Namespace": "boss.FanLinNameSpace" } }
然后一定要记得在ConfigureServices注入进去。这算是我踩的坑吧,不然会读取不到配置
services.AddSingleton(Configuration);
然后就可以读取相应的配置了
Over
搞定