首页 > 其他分享 >将Nacos设置为微服务的配置中心

将Nacos设置为微服务的配置中心

时间:2024-06-21 15:55:09浏览次数:8  
标签:username 配置文件 spring 配置 Nacos application 设置

  1. 首先需要明确Nacos作为配置中心能干什么?答:我的理解就是将配置文件动态化,可以实时的修改大部分配置项。
  2. 实现步骤
  • 导入maven
		
		<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
		<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
  • 配置application.yml/bootstrap.yml/application.properties,随便哪个配置文件中设置Nacos的地址、用户名密码、配置文件路径和分组,具体内容如下:
server:
  port: 3001 #服务端口

spring:
  application:
    name: practice #服务名称
  cloud:
    nacos:
      #      discovery: # 这里配置Nacos作为注册中心,我的项目已经处理统一配置了,所以这里就注释掉了
      #        server-addr: localhost:8801
      #        username: nacos
      #        password: nacos
      config: #这里配置Nacos作为配置中心,对于地址和用户名我已经统一配置过了,所以这里也注释掉了
        #        server-addr: 127.0.0.1:8801
        #        username: nacos
        #        password: nacos
        #        file-extension: yaml  # 默认值包含yaml,这一行可以省略不写
        group: DEFAULT_GROUP  # 配置Nacos分组,默认就是DEFAULT_GROUP,这一行可以省略
        prefix: ${spring.application.name}-springCloud3 # 默认配置是“${spring.application.name}”,
		#如果Nacos中的配置文件名和服务名一致,则这一行可以省略,
		#如果要起别名,比如我的“${spring.application.name}-springCloud3”,那这里不能省略
  • 到这里配置中心的设置就完成了,只要保证服务和Nacos正常通信那就没问题了,后续只需要关注Nacos中的配置文件内容就可以了,这里贴一个我的Nacos配置文件截图:
    image
  • 总结:配置Nacos作为配置中心很简单,不要把这个问题想复杂了,自己上手尝试一下很容易就掌握了,一起加油!
  1. 特殊情况
  • 动态配置属性值,举个例子:再某个Nacos配置文件application.yaml文件中我设置了属性“username”为张三,如下:
server:
  port: 9090

spring:
  application:
    name: practice
	
username: 张三  #启动服务后将Value改为“李四”

在我启动服务“practice”后,更改username的值为“李四”
然后我在某个controller中使用@Value调用它,如下:

@RestController
@RequestMapping("/user")
public class UserController() {
	@Value("${username}")
	private String username;
	
	@GetMapping
	public String getUsername() {
		return username;
	}
}

此时调用“localhost:8080/user"发现得到的结果还是“张三”,嗯?没起作用是怎么回事呢!查阅资料中...,哎,最后发现,对于配置文件配置的属性值,想要实现Nacos动态配置,需要在类作用于加上注解:@RefreshScope,代码如下:

@RefreshScope
@RestController
@RequestMapping("/user")
public class UserController() {
	@Value("${username}")
	private String username;
	
	@GetMapping
	public String getUsername() {
		return username;
	}
}

重启服务后刷新"localhost:8080/user",发现得到的结果是“李四”,证明动态配置完成。

标签:username,配置文件,spring,配置,Nacos,application,设置
From: https://www.cnblogs.com/oxygen-qq/p/18260348

相关文章

  • Vue配置项data
    data目录data目录类型介绍关键原理编译过程Vue2Vue3......
  • .NET 6 Swagger+JWT 配置
    1.1封装一个SwaggerExtend类(包含JWT配置)///<summary>///Swagger静态类///</summary>publicstaticclassSwaggerExtend{///<summary>///添加服务:swagger///</summary>///<paramname=&qu......
  • 24.3K star!一个轻量级且高度可配置的现代化命令行文本编辑器
    大家好,今天给大家分享的是一个轻量级且高度可配置的现代化命令行文本编辑器。micro是一个轻量级且高度可配置的命令行文本编辑器,以其简洁的设计和强大的插件系统著称。该项目强调速度与效率,适合那些追求快速编辑体验并希望保持系统资源占用低的用户。项目介绍micro旨在成为n......
  • Windows的Gitlab Runner搭配的PowerShell脚本:自动上传网站并配置IIS
    简介GitlabRunner在Windows上运行之后,我们在.gitlab-ci.yml中编写script语句,思路和Linux是一样。但是考虑到Windows的特点,为了让程序员少接触一些知识点,以及给未来执行作业的时候预留更多的操作空间。简单说就是未来修改执行作业时候的逻辑,但是每个软件仓库根目录下的.gitlab-ci......
  • 4. MyBatis核心配置文件详解
    我出门的时候必遭杀害,因为门外有狮子对mybatis-config.xml文件进行剖析<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd/mybatis-3-config.......
  • vue3 详细配置 pinia,以及持久化处理
    安装piniapnpminstallpiniapnpminstallpinia-plugin-persistedstate使用pinia根目录下创建store文件夹,新家moudules文件夹和index.ts文件,如图:index.ts文件//store/index.ts//仓库大仓库import{createPinia}from"pinia";importpiniaPluginPersisteds......
  • vsftp配置文件
    1、vsftp.conf配置文件vi/etc/vsftpd/vsftpd.conf##以下是具体内容:anonymous_enable=NOlocal_enable=YESlocal_root=write_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=YESlisten_ip......
  • 09-axios在Vue中的导入与配置
    09-axios前言首先简单了解什么是Axios?以上完成后就可以使用了前言我们接着上一篇文章08-路由地址的数据获取来讲。下一篇文章10-vuex在Vue中的导入与配置首先简单了解什么是Axios?Axios是一个基于Promise用于浏览器和nodejs的HTTP客户端,本质上也是对......
  • vue.config.js基础配置
    constpath=require('path')constUglifyPlugin=require('uglifyjs-webpack-plugin')module.exports={publicPath:'./',//基本路径outputDir:'dist',//输出文件目录lintOnSave:false,//eslint-loader是否在保存的......
  • Chrome谷歌浏览器如何设置,才能正常使用?
    Chrome浏览器,也被称为谷歌浏览器,由于简洁的界面设计,极快的响应速度,强大的插件商店,在全球浏览器市场份额中一直都处于遥遥领先的地位。但是因为2010年谷歌宣布退出中国,国内不能再使用谷歌的服务,所以在国内需要设置一下才能正常的使用,如何设置呢?今天教给大家。首先下载Chrome浏......