乐趣区

关于springboot:springboot240以上版本config-client配置bootstrapproperties无法启动

确保 config server 可能拜访

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

2. 拜访如下图:

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 启动,可能是短少什么依赖。

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

启动之后日志如下,发现还是没有所有利用配置文件

2.2 猜想 1 根本谬误

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

2.3 针对猜想 2 查看问题

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

2. 增加依赖

3. 再次启动

4. 通过 env 查看发现可能获取到相应的配置,确认了是 bootstrap.properties 短少了启动依赖导致。与 application.properties 文件无关。

论断

针对 config client 无奈获取 config server 的配置服务的参数,从 springboot2.4 当前的版本是须要增加 spring-cloud-starter-bootstrap 依赖。

退出移动版