一、启动Nacos服务端
前提条件
为什么要接入配置中心
:因为传统的项目里修改一些配置需要经过重新部署
服务这个过程,而统一配置中心则避免服务重启就能读取到最新的配置修改或更新内容!!!将一些可能会修改的配置放在配置中心,省时省力。
先下载 Nacos 并启动 Nacos server。操作步骤参见 Nacos 快速入门。
快速入门:https://nacos.io/zh-cn/docs/quick-start.html
Nacos官方文档:https://nacos.io/zh-cn/index.html
代码克隆:git clone git@github.com:BillDavidup/study-api.git
开发分支:DN-20220801.accessToNacos
二、Nacos配置命名空间和热配置
启动Nacos服务端后,进Nacos配置页面 http://127.0.0.1:8848/nacos
输入用户名和密码nacos
进入首页长这么样子:
新建命名空间:
在命名空间上新建配置项:
配置项study-api.yml的内容如下,因为是YAML格式的配置
myNacos:
demo: "558"
配置完一个配置是这样的:
记录下namespace
、dataId
、group信息,后面spring boot项目接入需要
三、接入步骤
3.1 pom.xml文件引入jar
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.12</version>
</dependency>
3.2 启动类加注接@NacosPropertySource()
@SpringBootApplication
@NacosPropertySource(dataId = "study-api.yml", autoRefreshed = true, type = ConfigType.YAML)
@ComponentScan(basePackages = "com.dening.study.api")
public class StudyApiWebApplication {
public static void main(String[] args) {
SpringApplication.run(StudyApiWebApplication.class, args);
}
}
dataId
后面指定服务加载的热更新配置文件名称 study-api.yml
,该文件在nacos页面配置,里面存放的就是配置项
3.3 配置application.yml文件
nacos:
config:
server-addr: 127.0.0.1:8848
namespace: 5660da82-1be1-4ee5-a25c-1d133e6465a5
namespace
是nacos页面配置的随机一串命名空间字符
3.4 在Service中注入配置
@Service
public class NacosDemoServiceImpl implements NacosDemoService {
@NacosValue(value = "${myNacos.demo:899}", autoRefreshed = true)
String myNacosDemo = "";
public String getDemoNacosParam() {
return myNacosDemo;
}
}
@NacosValue()
放在赋值字段myNacosDemo上面
四、nacos配置关键词解释
- 常用方式一
namespace
: 命名空间用来区分环境,开发、测试、预发、生产等环境(名称带上环境标识)
group
: 区分同组不同的项目/系统同项目不同模块
dataId
: 一个独立的配置文件 - 常用方式二
namespace
: 命名空间用来区分项目
group
: 区分不同的项目/系统同项目不同模块,可以采用group进行软隔离,格式用该模块的artifactId
dataId
: 一个独立的配置文件,区分环境(需要根据激活的环境去动态拼接dataId)