目录
注意事项
不管是使用Nacos配置中心,还是使用Nacos注册中心,大家一定要注意SpringCloudAlibaba和SpringBoot的版本对应关系,以免实际开发过程中出现各种莫名其妙的问题。下图供大家参考(非最新的对应关系)
参考资源
Nacos环境准备参考官网链接:Nacos 快速开始 | Nacos
Nacos配置中心和注册中心底层原理实现分析可参考如下链接:
SpringCloudAlibaba系列之Nacos配置管理
SpringCloudAlibaba系列之Nacos服务注册与发现
示例代码源码参考地址:https://gitee.com/williamjava/spring_cloud_alibaba_practise
Nacos配置中心
初始化项目
- 核心maven依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- 增加项目中配置文件yml
spring:
application:
name: alibaba-nacos-config-client
cloud:
nacos:
config:
server-addr: localhost:8848
file-extension: yaml
server:
port: 8604
- 创建测试Controller
package com.gui.alibaba.nacos.config.controller;
import lombok.extern.slf4j.Slf4j;
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;
/**
* 注解:RefreshScope
* 主要用来让这个类下的配置内容支持动态刷新,也就是当我们的应用启动之后,修改了Nacos中的配置内容之后,这里也会马上生效
*/
@Slf4j
@RestController
@RefreshScope
public class TestController {
@Value("${practise.title:本地默认内容}")
private String title;
@GetMapping("/test")
public String hello() {
return title;
}
}