音乐网站如何建设的如何做网络宣传推广
目录
- 踩坑问题记录
- 前言
- 版本说明
- 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.verson>2021.0.6.0</spring-cloud.verson>
<spring-boot.version>2.7.18</spring-boot.version>
后面实在是找不到问题的解决方法,查了官方的说明,没有springboot版本在2.6.13之后的说明,官方中从2.6.13之后到3.0.0之间没有任何说明,然后没办法了,降低了版本。
现在版本如下:
<spring-cloud.version>2021.0.5</spring-cloud.version>
<spring-cloud-alibaba.verson>2021.0.5.0</spring-cloud-alibaba.verson>
<spring-boot.version>2.6.13</spring-boot.version>
nacos 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
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
从nacos拉取config
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
application.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.enabled=false,也不生效,拿不到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 在访问,可以动态刷新。
后话
有些操作/配置我没有写,我默认你是懂的,如果不懂,百度!