基础环境
已经安装好了nacos服务器
已经有一个SpringBoot工程。
注册中心配置
添加依赖
注册中心配置依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${nacos.version}</version>
</dependency>
启用注解
然后使用@EnableDiscoveryClient
启用注册:
@EnableDiscoveryClient
@SpringBootApplication
public class MasterServiceApplication {
// 其他代码
public static void main(String[] args) {
SpringApplication.run(MasterServiceApplication.class, args);
}
}
配置nacos地址
配置application.yml,如果自定义了namespace,需要填写namespace的ID(不是名称)
spring:
cloud:
nacos:
server-addr: 127.0.0.1:8848
discovery:
enabled: true
namespace: my_dev
启动后可以在控制台看到:
可以使用命名空间区分注册中心环境,测试和开发可以使用同一个nacos的不同命名空间。
配置中心
配置中心可以支持动态刷新,需要配置到bootstrap.yml
引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${nacos.version}</version>
</dependency>
启用配置中心
启用配置中心,需要在bootstrap.yml
中配置:
spring:
cloud:
nacos:
server-addr: 127.0.0.1:8848
config:
enabled: true
namespace: my_dev
file-extension: yml
使用配置
新建配置:
配置ID格式:${应用名字}-${环境}.${扩展名}
如:MasterServiceProvider-dev.yml
必须在需要刷新的地方添加@RefreshScope
注解,否则只能重启后有效,不能实时更新状态。
@RefreshScope
@RestController
@RequestMapping("/test")
public class TestController {
@Value("${test.my-key}")
private String myKey;
@GetMapping("/showKey")
public String test() {
return "test.my-key=" + myKey;
}
}
配置完成。