配置中心
一、下载安装windows版nacos-server
https://github.com/alibaba/nacos/releases
解压后进入nacos/bin目录,打开cmd操作窗口,执行startup.cmd -m standalone
启动之后浏览器登录nacos-server可视化页面 http://IP:8848/nacos/
账号/密码: nacos/nacos
二、springboot集成nacos实现配置中心动态刷新
1、创建springboot项目
2、导入maven依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- nacos配置,注意不要用springcloud的discovery,不然注册不上nacos -->
<!-- 千万注意不要用springCloud中的discovery,不然死活注册不上 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
</dependencies>
3、项目启动类添加注解
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class TestNacosApplication {
public static void main(String[] args) {
SpringApplication.run(TestNacosApplication.class, args);
}
}
4、新建bootstrap.yml文件
spring:
application:
name: nacos-config #指定项目的名字
cloud:
nacos:
discovery: #用于服务发现
server-addr: localhost:8848 #nacos配置中心地址和端口
config: #指定配置中心
server-addr: localhost:8848 #nacos配置中心地址和端口
file-extension: yaml #指定服务配置格式,严格要求,下面会说到有几种格式
三、增加配置文件
1、可视化页面创建配置文件
Data ID规范(严格要求,不然会匹配不了):
${spring.cloud.nacos.config.prefix}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
项目名称-环境.文件格式
2、创建测试类
package com.example.demo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/nacos/config")
@RefreshScope //配置热更新
public class NacosConfigController {
@Value("${work.address}")
private String workAddress;
@RequestMapping("/getAddress")
public String getAddress() {
return workAddress;
}
}
启动后,访问 localhost:8082/nacos/config/getAddress
响应内容: 北京
3、动态刷新测试
Controller层配置 @RefreshScope
,修改配置项测试
再次访问 localhost:8082/nacos/config/getAddress
响应内容: 北京-西北旺