springboot2.4.0以上版本config client配置bootstrap.properties无法启动

确保config server能够访问

1.访问config server(config server配置为git),访问链接http://localhost:7070/app/test/master

2.访问如下图:
springboot2.4.0以上版本config client配置bootstrap.properties无法启动_第1张图片

3.确认config server一切工作正常,config server并没有问题,排查config client。

检查config client

1.检查配置

application.properties

## Spring Cloud Eureka 客户端应用名称
spring.application.name = spring-cloud-eureka-client
## Spring Cloud Eureka 客户端服务端口
server.port = 8080
# 启用端点 envmanagement.endpoint.env.enabled=true
# 暴露端点 env 配置多个,隔开
management.endpoints.web.exposure.include=*
management.endpoint.info.enabled=true
management.info.env.enabled=true
#eureka.client.serviceUrl.defaultZone=http://localhost:9090/eureka
logging.level.org.springframework.cloud=trace

bootstrap.properties

eureka.client.serviceUrl.defaultZone=http://127.0.0.1:9090/eureka
spring.cloud.config.name=app
spring.cloud.config.profile=test
spring.cloud.config.label=master
spring.profiles.active=test
#spring.config.import=optional:spring-cloud-config-server:http://localhost:7070/
spring.cloud.config.fail-fast=true
## 激活 Config 服务器发现
spring.cloud.config.discovery.enabled=true
## 配置 Config 服务器的应用名称(Service ID)
spring.cloud.config.discovery.serviceId=spring-cloud-config-server

检查配置发现并没有什么问题,确认配置没有问题,问题应该在其他地方。

2. 检查日志

检查日志后发现,我配置的profile为test,但是并没有读取出来,根据日志来看,貌似并没有从bootstrap.properties读取配置,得出如下猜测:

1.配置文件应该在全部配置在application中。

2.springboot 并没有从bootstrap.properties启动,可能是缺少什么依赖。
image.png

2.1 针对猜测1检查问题

将所有配置整合在application中,再次启动。

## Spring Cloud Eureka 客户端应用名称
spring.application.name = spring-cloud-eureka-client
## Spring Cloud Eureka 客户端服务端口
server.port = 8080
# 启用端点 envmanagement.endpoint.env.enabled=true
# 暴露端点 env 配置多个,隔开
management.endpoints.web.exposure.include=*
management.endpoint.info.enabled=true
management.info.env.enabled=true
#eureka.client.serviceUrl.defaultZone=http://localhost:9090/eureka
logging.level.org.springframework.cloud=trace
#logging.level.org.springframework=trace

eureka.client.serviceUrl.defaultZone=http://127.0.0.1:9090/eureka
spring.cloud.config.name=app
spring.cloud.config.profile=test
spring.cloud.config.label=master
spring.profiles.active=test
#spring.config.import=optional:spring-cloud-config-server:http://localhost:7070/
spring.cloud.config.fail-fast=true
## 激活 Config 服务器发现
spring.cloud.config.discovery.enabled=true
## 配置 Config 服务器的应用名称(Service ID)
spring.cloud.config.discovery.serviceId=spring-cloud-config-server

启动之后日志如下,发现还是没有所有应用配置文件
springboot2.4.0以上版本config client配置bootstrap.properties无法启动_第2张图片

2.2 猜测1基本错误

通过日志来看,猜测1基本错误,不仅没有读取相应的配置,还检查不到config server,针对猜测的检查截止。

2.3 针对猜测2检查问题

  1. 查询spring官网,发现spring团队居然将spring-cloud-starter-bootstrap提取出来了,在以前的版本中,bootstrap是整合在springboot中的,从springboot2.4就独立出来了。

springboot2.4.0以上版本config client配置bootstrap.properties无法启动_第3张图片

2.添加依赖
springboot2.4.0以上版本config client配置bootstrap.properties无法启动_第4张图片

3.再次启动
springboot2.4.0以上版本config client配置bootstrap.properties无法启动_第5张图片
image.png

4.通过env检查发现能够获取到相应的配置,确认了是bootstrap.properties缺少了启动依赖导致。与application.properties文件无关。
springboot2.4.0以上版本config client配置bootstrap.properties无法启动_第6张图片

结论

针对config client无法获取config server的配置服务的参数,从springboot2.4以后的版本是需要添加spring-cloud-starter-bootstrap依赖。

你可能感兴趣的:(springboot)