关于在实验SpringConfig启动客户端的简单使用时踩的坑

"本文主要探讨了SpringBoot应用启动失败的问题,原因在于SpringCloud新版本默认禁用了Bootstrap。解决办法是引入spring-cloud-starter-bootstrap依赖。此外,配置文件的命名也至关重要,当ConfigServer端口非8888时,客户端需使用bootstrap.yml。若配置文件命名不规范,如${serverPort}
摘要由CSDN通过智能技术生成

报错1:DEBUG org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter - Application failed to start due to an exception

ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter -

原因:Spring Cloud 新版本默认将 Bootstrap 禁用,需要将 spring-cloud-starter-bootstrap 依赖引入到工程中

报错2::org.springframework.cloud.config.client.ConfigServerInstanceProvider$Function has not been registered

原因配置文件命名问题:

改成

 application.properties就可以了

配置文件命名的命名规则为:

使用Spring Cloud Config Client 获取 Config Server 配置文件时,如果Config Server端口不是8888时,则Config Client的配置文件应该设置为bootstrap.yml,而不是application.yml,bootstrap.yml加载顺序优先于application.yml,否则会获取失败。

上图显示 无法解决占位符${serverPort},这是因为Config Client 客户端没有成功获取到Config Server 服务器(GitHub)上的配置文件信息。故而导致启动失败。

仓库中的配置文件会被转换成web接口,访问可以参照以下的规则:
 
 /{application}/{profile}[/{label}]:
 
  ~: /{application}-{profile}.yml
  ~: /{label}/{application}-{profile}.yml
  ~: /{application}-{profile}.properties
  ~: /{label}/{application}-{profile}.properties

Gitee 远程服务器的配置文件需与客户端文件名称对应。如:{application}-{profile}.yml,则标识 Config-Client 客户端应用的名称 + 应用环境。 profile 可以设置为dev(开发环境)、test(测试环境)、pro(正式环境)。以当前客户端为例:GitHub所对应的配置文件为:eureka-config-client-dev.properties。
 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 引入Spring Cloud Config客户端依赖 在POM文件中添加如下依赖: ``` <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> ``` 2. 配置bootstrap.yml 在应用程序的src/main/resources目录下,新建bootstrap.yml文件,配置如下: ``` spring: application: name: your-application-name cloud: config: uri: http://config-server-host:port profile: dev label: master ``` 其中: - your-application-name:是当前应用程序的名称,必填项。 - uri:配置服务器的地址,必填项。 - profile:用于指定当前应用程序的配置文件,选填项。 - label:用于指定Git仓库中的分支或标签,默认为master,选填项。 3. 从配置服务器获取配置信息 在需要获取配置信息的类中,注入ConfigurableApplicationContext对象,并使用该对象获取配置信息,示例代码如下: ``` @Autowired private ConfigurableApplicationContext applicationContext; public void getConfig() { String foo = applicationContext.getEnvironment().getProperty("foo"); String bar = applicationContext.getEnvironment().getProperty("bar"); String baz = applicationContext.getEnvironment().getProperty("baz"); System.out.println(foo + " " + bar + " " + baz); } ``` 其中,foo、bar和baz是配置文件中的属性名。 4. 运行应用程序 配置完成后,启动应用程序即可从配置服务器获取配置信息。如果配置服务器中的配置信息发生变化,客户端会自动刷新配置信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟雨落红尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值