Nacos(三)-Nacos Spring Cloud-配置中心

前两篇记录了下载安装nacos、使用nacos作为注册中心:

本篇记录使用nacos作为配置中心,并通过配置页面修改配置进行动态刷新演示

一、项目介绍

继续使用上一篇创建的项目nacos,创建新module cloud-config:
在这里插入图片描述

二、开发配置

1、添加依赖

pom.xml

<properties>
		<java.version>1.8</java.version>
		<spring-cloud.version>Finchley.SR2</spring-cloud.version>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>


	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
			<version>0.9.0.RELEASE</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

主要包含:

  • SpringCloud配置
  • alibaba-nacos-config
    这里与注册中心不同的是config,两个可以单独使用

2、添加配置

bootstrap.properties

spring.application.name=cloud-config
server.port=30400

spring.cloud.nacos.config.server-addr=192.168.1.125:8848

配置Nacos server 的地址和应用名
这里配置文件必须使用bootstrap文件名,并且需要配置spring.application.name,具体原因见下面介绍 Nacos 配置管理 dataId部分

3、编写接口

@RestController
@RequestMapping("user")
@RefreshScope
public class UserController {

    @Value("${userName:123}")
    private String userName;

    @RequestMapping("/get")
    public String get() {
        return userName + " hello";
    }
}

使用@Value注解读取配置userName;
使用Spring Cloud原生注解 @RefreshScope 实现配置自动更新

4、验证

启动服务,并用postman访问接口:
在这里插入图片描述
注:这里因为读取的键为userName,读取的是电脑配置的用户名,使用其他名字将会打印 123 hello

三、修改配置

打开nacos页面配置列表,点“+”号:
在这里插入图片描述
新建配置
在这里插入图片描述
点击页面下方发布按钮,确认发布后,看服务日志:
在这里插入图片描述
再次访问接口:
在这里插入图片描述
可以看到配置已经更新

四、配置分析

1、Data Id

Data Id 是nacos用来定定位配置内容的,完整格式为:

${prefix}-${spring.profile.active}.${file-extension}
  • prefix :默认为 spring.application.name,(也可以通过配置项 spring.cloud.nacos.config.prefix来配置)
  • spring.profile.active : 即为当前环境对应的 profile,例如dev,当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成:
 ${prefix}.${file-extension}
  • file-exetension : 为配置内容的数据格式,(可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型

因此,本例配置spring.application.name为cloud-config,配置文件格式为properties,则Data Id 为“cloud-config.properties”

2、Group

配合Data Id 一起定位配置内容,暂时不修改,使用默认即可DEFAULT_GROUP

五、更多操作

1、查看历史版本

点击配置管理->历史版本,输入Data Id,Group,点击查询,可以看到配置的历史版本,并可以查看详情,或者回滚:
在这里插入图片描述

六、参考链接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章