建一个营销网站多少钱,做电影网站如何不侵权,卖房网站排名,如何搭建一个服务平台目录 踩坑问题记录前言版本说明spring cloudb不会自动读取bootstrap.yml文件问题解决spring cloud注册nacos并从nacos上拉取配置文件后话 踩坑问题记录
1、spring cloudb不会自动读取bootstrap.yml文件 2、spring cloud注册nacos并从nacos上拉取配置文件
前言
使用cloud Ali… 目录 踩坑问题记录前言版本说明spring cloudb不会自动读取bootstrap.yml文件问题解决spring cloud注册nacos并从nacos上拉取配置文件后话 踩坑问题记录
1、spring cloudb不会自动读取bootstrap.yml文件 2、spring cloud注册nacos并从nacos上拉取配置文件
前言
使用cloud Alibaba搭建cloud项目一开始学习的是2.1.0.RELEASE版本现在搭建的版本升级了导致原本的写法各种报错以及不能实现预想效果而且没有任何报错信息。问题排查了好多天终于解决了做个记录。
版本说明
cloud项目需要各组件严格按照官方版本要求否则会出奇怪的问题/报错。 官方版本说明直达
我一开始的版本是
spring-cloud.verson2021.0.6.0/spring-cloud.verson
spring-boot.version2.7.18/spring-boot.version后面实在是找不到问题的解决方法查了官方的说明没有springboot版本在2.6.13之后的说明官方中从2.6.13之后到3.0.0之间没有任何说明然后没办法了降低了版本。
现在版本如下
spring-cloud.version2021.0.5/spring-cloud.version
spring-cloud-alibaba.verson2021.0.5.0/spring-cloud-alibaba.verson
spring-boot.version2.6.13/spring-boot.versionnacos service 版本2.2.0 不确定原本的版本按照下面的配置是否可行如果有比2.6.13高的版本可以尝试一下可不可以都在评论区告诉我一声。配置是后面改的配置正确了高一个小版本应该不是问题。
spring cloudb不会自动读取bootstrap.yml文件问题解决
不需要解决
这个问题在Spring Boot 2.4版本之后会出现原因是官方对配置文件加载方式进行了重构。从2.4版本之后默认不会自动加载bootstrap.yml/bootstrap.properties。
也就是说有关cloud的配置只需要写在application.yml文件里面就可以了可以生效。
spring cloud注册nacos并从nacos上拉取配置文件
导包
服务注册nacos
dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId
/dependency
从nacos拉取config
dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId
/dependencyapplication.yml配置如下 spring:application:name: nacos-service # 网关服务名称cloud:nacos:discovery:server-addr: localhost:8848 #Nacos服务注册中心地址config:server-addr: localhost:8848 #Nacos作为配置中心地址file-extension: yaml #指定yaml格式的配置namespace: 259e9ca9-700c-44a9-a27a-3e48c65d5741group: DEV_GROUPconfig:import: nacos:nacos-service-dev.yaml配置说名 discovery是注册服务的让你的服务可以在服务列表看到并可以给其他服务调用。
config是指定从哪里拉取数据上面的代码里面所有的配置不能少 默认情况下spring.config.import的内容就是${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
如果spring.config.import的指定了不一样的内容以spring.config.import的指定的为准。
其他的配置都不行我试过去掉namespace和group使用默认的不可以试过import-check.enabledfalse,也不生效拿不到config启动不了。
测试。
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;RestController
RefreshScope
public class TestController {Value(${config.info})private String configInfo;GetMapping(/test/config/info)public String getConfigInfo() {return configInfo;}
}在nacos的配置列表写入config注意Data ID和Group要与application.yml写的一样namespace和group也要一样我是自己新建了命名空间不是默认的话把你自己的粘贴上去就好了。
config: #这里冒号后面有一个空格不能少格式要注意info: nacos-service-dev.yaml, DEV_GROUP, verison 10;启动nacos和cloud项目修改verison 在访问可以动态刷新。
后话
有些操作/配置我没有写我默认你是懂的如果不懂百度