学习spring cloud记录9-nacos深一步学习
前言
统一配置管理将各个服务的配置管理起来,如果发生变化,可以主动向服务发送信息。配置管理服务也在nacos中。
配置热更新
在配置列表新建配置


发布后,这个配置已经进入统一配置管理
服务配置拉去
项目先读取nacos的配置文件,然后再读取本地的配置文件。bootstrap.yml文件要比application.yml的优先级高,所以可以把nacos的地址等信息文件内容移到bootstrap.yml
引入nacos配置管理依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
然后新建bootstrap.yml文件,配置nacos信息,然后把application.xml重复的信息删除
spring:
application:
name: demo-user
profiles:
active: dev
cloud:
nacos:
server-addr: localhost:8848
config:
file-extension: yaml
测试是否能够读取到nacos信息
先查看nacos中的配置是什么样的
名称为demo-user-dev.yaml,内容为
pattern:
dateformat: yyyy-MM-dd HH:mm:ss
启动时报错Param 'serviceName' is illegal, serviceName is blank,因为spring-cloud-dependencies 2020.0.0 版本不在默认加载bootstrap 文件,如果需要加载bootstrap 文件需要手动添加依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
在controller写一个读取配置文件的方法
    @Value("${pattern.dateformat}")
    private String dataformat;
    @GetMapping("now")
    public String now(){
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
    }
运行后获得
说明nacos配置文件已经读取到本地
配置热部署
方式一
在@Value的类上添加注解@RefreshScope
@RestController
@RequestMapping(value = "user")
@RefreshScope
public class SysUserController {
@Value("${pattern.dataformat}")
private String dataformat; ...
这样直接去nacos中修改配置,发布后不用重启服务
方式二
使用注解@ConfigurationProperties
新建一个类,专门完成属性加载
package priv.sinoam.demouser.config; import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; /**
* 加载nacos配置类
* @author hasee
*/
@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class Pattern { private String dateformat;
}
@Component将其注册成spring的一个bean,prefix和变量名要和配置文件中一致,将代码修改为
@RestController
@RequestMapping(value = "user")
public class SysUserController { @Autowired
private SysUserService sysUserService; @Autowired
private Pattern pattern; @GetMapping("now")
public String now(){
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(pattern.getDateformat()));
}
这样直接去nacos中修改配置,发布后不用重启服务
多环境配置共享
微服务启动时从nacos读取多个配置文件:
[spring.application.name]-[spring.profiles.active].yaml,即和服务名跟环境有关系
[spring.application.name].yaml,即只和服务名有关系
所以可以将配置文件放在下面这个配置文件中。
所以在nacos新建配置时,使用服务名.yanl即可,在本项目中例如demo-user.yaml
优先级:服务名-active.yaml>服务名.yaml>本地配置
结语
:)
学习spring cloud记录9-nacos深一步学习的更多相关文章
- Spring Cloud Alibaba(4)---Nacos(注册中心)
		
Nacos(注册中心) 有关Spring Cloud Alibaba之前写过三篇文章. Spring Cloud Alibaba(1)---入门篇 Spring Cloud Alibaba(2)--- ...
 - Spring Cloud Alibaba(2)---Nacos概述
		
Spring Cloud Alibaba(2)---nacos概述 上一篇博客讲了有关 SpringCloudAlibaba的概述,这篇开始讲SpringCloudAlibaba组件之一---Naco ...
 - Spring Cloud Alibaba(5)---Nacos(配置中心)
		
Nacos(配置中心) 有关Spring Cloud Alibaba之前写过四篇文章,这篇也是在上面项目的基础上进行开发. Spring Cloud Alibaba(1)---入门篇 Spring C ...
 - Spring Cloud Alibaba(6)---Nacos持久化Mysql8.0版本
		
Nacos持久化Mysql8.0版本 有关Nacos之前写过三篇文章. Spring Cloud Alibaba(3)---Nacos概述 Spring Cloud Alibaba(4)---Naco ...
 - Spring Cloud Alibaba(3)---Nacos概述
		
Spring Cloud Alibaba(3)---nacos概述 上一篇博客讲了有关 SpringCloudAlibaba的概述,这篇开始讲SpringCloudAlibaba组件之一---Naco ...
 - Spring Cloud Alibaba 教程 | Nacos(五)
		
扩展配置(extended configurations) 通过之前的学习,我们知道应用引入nacos配置中心之后默认将会加载Data ID= ${prefix} - ${spring.profile ...
 - Spring Cloud Alibaba 之Nacos
		
Nacos 技术讲解 一提到分布式系统就不的不提一下 CAP 原则 什么是CAP CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency).可用性(Availability ...
 - Spring Cloud Alibaba 之 Nacos
		
Nacos 技术讲解 一提到分布式系统就不的不提一下 CAP 原则 什么是CAP CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency).可用性(Availability ...
 - 【微服务】使用spring cloud搭建微服务框架,整理学习资料
		
写在前面 使用spring cloud搭建微服务框架,是我最近最主要的工作之一,一开始我使用bubbo加zookeeper制作了一个基于dubbo的微服务框架,然后被架构师否了,架构师曰:此物过时.随 ...
 - Spring Cloud Alibaba 使用nacos 注册中心
		
### 背景 上一文我们讲到了如何去搭建注册中心,这一次我们讲述如何使用nacos作为注册中心 ### spring-cloud-alibaba-basis 创建基础依赖 首先我们创建一个spring ...
 
随机推荐
- 扫盲ASM
			
在进行程序跟踪时,会出现汇编.由于ASM盲,所以添加不少烦恼.有烦恼得想办法解决.对,扫盲ASM. 这里是教材,感觉大白话很好理解(感谢 http://www.ruanyifeng.com/blog/ ...
 - java一个校验对象是否为null的豪华大礼包
			
自写的校验所有类型是否为null的工具类, 懒人福音,嘎嘎好用. 1 /** 2 * 一个校验对象是否为null的豪华大礼包 3 * 可以校验:Collection,Map,String,Enumer ...
 - 端口telnet不通排查过程
			
现状 简单描述下最近在做啥,我手里维护的一些系统的线上服务器,还在使用centos7,7.3/7.6/7.9都有,运维侧选定的替换系统是openEuler20.03-LTS-SP1.按理说,运维直接在 ...
 - CSP - J理论(1)
			
CSP-J理论(1) CSP-J理论合集跳转 目录 本目录中所有标题单击均可以快速跳转哦 一.排列组合与概率 $\ \ \ \ \ $1.排列 $\ \ \ \ \ $2.组合 $\ \ \ \ \ ...
 - 事务注解@Transactional
			
目录 1.属性介绍 2.传播机制 准备例子 总结 3.原理 4.失效场景 一.属性介绍 1.isolation 属性 事务的隔离级别,默认值为 Isolation.DEFAULT.可选的值有: Iso ...
 - ESP-IDF教程2 GPIO - 输入、输出和中断
			
1.前提 1.1.基础知识 1.1.1.GPIO 分类 ESP32 系列芯片按照 GPIO 特殊的使用限制分类,可以将其分为如下几类: GPIO PIN GPI PIN Strapping PIN S ...
 - 36条技巧优化PHP代码(总结)
			
原文:38条技巧优化PHP代码 1.如果一个方法能被静态,那就声明他为静态的,速度可提高1/4; 2.echo的效率高于print,因为echo没有返回值,print返回一个整型; 3.在循环之前设置 ...
 - MQTT服务器 apache-apollo
			
apache-apollo下载 下载地址 http://archive.apache.org/dist/activemq/activemq-apollo/1.7.1/ 原来的官网地址下载不到apach ...
 - AxureRP大型综合商场APP高保真交互原型图含VR试衣间停车缴费会员卡楼层导购
			
大型综合商场APP AxureRP高保真交互原型图含VR试衣间停车缴费会员卡楼层导购,是一款完全原创的,关于大型综合商场的综合类应用APP,app中包含在线VR试衣间.楼层导购.会员码支付.在线停车缴 ...
 - 关于正点原子input子系统,驱动中按键中断只检测了上升或下降沿却可以实现连按(EV_REP)的原因
			
问题 在学习到Linux内核input子系统时,产生了一个疑惑.可以看到,我们改造按键中断驱动程序(请见keyinputdriver.c(内核驱动代码)),通过检测按键的上升沿和下降沿,在中断处理函数 ...