文章知识来源主要来源于:赵俊夫先生的博客 以下为原文链接
https://blog.csdn.net/u011177064/category_9572944.html
1:什么是配置
对于一个项目来说,每个项目肯定都有自己的配置文件,
可以配置文件可以是写在yml或者通过数据的形式与应用一起部署。
针对于SpringCloud体系,每个服务也都需要配置,那么需要有一个配置中心,
专门管理各个微应用的配置信息,并且在配置发送更新,马上可以读取到最新的配置信息。
2:Nacos配置规则
在 Nacos Spring Cloud 中,dataId 的完整格式如下:
${prefix}-${spring.profile.active}.${file-extension}
prefix 默认为 spring.application.name 的值,
也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
spring.profile.active 即为当前环境对应的 profile。
file-exetension 为配置内容的数据格式,
可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。
目前只支持 properties 和 yaml 类型。
注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
spring:
application:
name: server-name
cloud:
nacos:
discovery:
server-addr: nacos-host:nacos-port
config:
namespace: f3533721-4b21-4ef0-a373-e78b71f639c7
server-addr: nacos-host:nacos-port
group: DEFAULT_GROUP
file-extension: yml
配置详细讲解
config:
#在nacos上空间地址(默认为public空间 则不需要填)
namespace: f3533721-4b21-4ef0-a373-e78b71f639c7
#nacos服务的地址
server-addr: nacos-host:nacos-port
#在nacos上设置的分组
group: DEFAULT_GROUP
#在nacos上设置的配置文件格式
file-extension: yml
spring.application.name 服务的名称
spring.cloud.nacos.config.prefix 配置文件的前缀(如没有这个 则使用默认是 服务的名称)
spring.cloud.nacos.config.file-extension 配置文件后缀,用于拼接配置配置文件名称
使用SpringCloudConfig这种统一配置时Spring Boot 配置文件的加载顺序,
依次为 bootstrap.properties -> bootstrap.yml
而Nacos不会读取 application.yml的配置 只会读取bootstrap.yml
因此需要把 application.yml 修改名称为 bootstrap.yml
3:Nacos操作
1:新建命名空间
2:在该命名空间下创建配置
3:创建配置
4:代码编写
@RefreshScope 注解,这个注解主要用于配置的自动更新,
即在Nacos中该项配置发生变化时,在接口中就能感知到,获取到最新的值。
请求完之后 修改nacos-provider 配置下 app version 的值 再次请求
根据返回结果发现已经动态刷新了
@RestController
@Slf4j
@RefreshScope
public class NacosConfig {
@Value("${app.version}")
private String version;
@GetMapping(value = "/config/version")
public String version() {
return "Hello Nacos Config " + version;
}
}
项目连接
请配合项目代码食用效果更佳:
项目地址:
https://github.com/hesuijin/spring-cloud-alibaba-project
Git下载地址:
https://github.com.cnpmjs.org/hesuijin/spring-cloud-alibaba-project.git
在service-provider-demo 模块下
在service-consumer-demo 模块下
网友评论