springboot+nacos 简单实现配置中心
环境:
nacos-service: 1.4.5
java: 1.8
spring-boot: 2.3.12.RELEASE
nacos-config: 2.2.3.RELEASE
步骤:
1. 在github上下载nacos-service 找到对应兼容的版本
解压后创建nacos数据库 执行该sql
2.编辑D:\nacos\nacos\binD:\nacos\nacos\bin中startup.cmd文件
将运行模式改为 standalone
3.进入idea创建springboot项目
进入pom文件添加这两个依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>
4.将application文件改为bootstrap.yml
内容如下
spring:
application:
name: nacos-demo
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
namespace: 9cda3c26-2648-47ec-8dbd-067fd60cb119
file-extension: yaml
这个地方是大部分情况下配置失败的地方 着重记一下
首先不是什么东西都要加 也不是什么东西都不加
简单来讲 我们填哪些信息可以让naocs找到我们指定的文件 以及文件中的数据呢?
进入nacos管理页面
这里创建了一个命名空间 test
所以如果我们要获取test里的东西 namespace是一定要的 加上注册地址
目前有两个关键信息必填(通过注册中心地址找到命名空间)
但是到这里nacos只知道到哪个注册中心的哪个空间里找 还不知道哪个文件
直接这样启动肯定会报那个烦人的 找不到异常
表达式指定了找文件里的哪个字段数据
所以接下来要指定文件名称 也就是 DataId
注意这里的DataId 不包括后缀
那怎么告诉nacos我们要找哪个文件?
是的 它通过项目名称来找文件 再加上指定的文件类型 yaml
${spring.application.name}(nacos-demo).${spring.cloud.nacos.config.file-extension}(yaml)
nacos-demo.yaml
这样信息齐全 自然就找到了我们需要的数据
通过server-addr找到注册中心 找到注册中心后通过namespace找到命名空间 找到命名空间后通过项目名称+文件类型找到文件 找到文件后通过表达式调用对应字段的数据