springboot读取nacos配置文件


Posted in Java/Android onMay 20, 2022

SpringBoot 注册服务到 Nacos 上,由 Nacos 来做服务的管理。在 Nacos的配置列表中,管理着服务的配置文件。SpringBoot 有两种方式来读取配置文件的内容,一种是写配置文件类 @ConfigurationProperties ,一种是使用 @Value 注解。

首先,Nacos 的配置文件如下 

### 配置文件使用 yml 格式, 也可以使用 properties 格式,最终 yml 格式会转化成 properties,但是 @Value 注解### 对 yml 的list 的格式有不同,这个稍后再说。
eg: server.yml (list参数,使用逗号分隔)
  dashboard:
    emergent-info: key-1:value-1,key-2:value-2,key-3:value-3
 ### 或者这种形式 (注意缩进空格,- 后空格)    
   dashboard:
    emergent-info: 
      - key-1:value-1
      - key-2:value-2
      - key-3:value-3       

第一种方式来解析

@Setter
@Getter
@ConfigurationProperties("server")
public class ServerProperties {
    private List<String> dashboardEmergentInfo;
}

使用 @ConfigurationProperties 方式来解析,要对应配置文件名,对应属性的key值顺序和参数名的驼峰形式命名。配置文件类的方式,可以解析上面 list 的两种写法。

第二种方式来解析

@RefreshScope
public class DashboardController{ 

@Value("${dashboard.emergent-info:}")
private List<String> emergentInfo = new ArrayList<>();

    ... 
}  

使用 @Value 注解的方式,代码量是少了,但是解析不了上面配置文件的第二种方式,只能解析第一种使用逗号分隔的list数据。@Value里面的冒号后面是初始化值,这里做空处理。Nacos 修改配置文件list的内容,@Value 注解不会时时的刷新处理数据,所以在 类上加了 @RefreshScope。

到此这篇关于springboot读取nacos配置文件的文章就介绍到这了!


Tags in this post...

Java/Android 相关文章推荐
解析Java异步之call future
Jun 14 Java/Android
JPA如何使用entityManager执行SQL并指定返回类型
Jun 15 Java/Android
Java如何实现树的同构?
Jun 22 Java/Android
mybatis 解决从列名到属性名的自动映射失败问题
Jun 30 Java/Android
springboot 启动如何排除某些bean的注入
Aug 02 Java/Android
Java使用Unsafe类的示例详解
Sep 25 Java/Android
Java spring定时任务详解
Oct 05 Java/Android
Spring Boot DevTools 全局配置学习指南
Mar 31 Java/Android
零基础学java之带参数以及返回值的方法
Apr 10 Java/Android
Android Studio实现带三角函数对数运算功能的高级计算器
May 20 Java/Android
Spring Cloud OAuth2实现自定义token返回格式
Jun 25 Java/Android
SpringBoot详解执行过程
Jul 15 Java/Android
Android studio 简单计算器的编写
May 20 #Java/Android
mybatis 获取更新记录的id
May 20 #Java/Android
Android Studio 计算器开发
May 20 #Java/Android
Android Studio实现简易进制转换计算器
May 20 #Java/Android
Spring 使用注解开发
May 20 #Java/Android
MyBatis核心源码深度剖析SQL语句执行过程
Java 轮询锁使用时遇到问题
May 11 #Java/Android
You might like
谈谈PHP语法(2)
2006/10/09 PHP
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
Packer 3.0 JS压缩及混淆工具 下载
2007/05/03 Javascript
一个简单的js动画效果代码
2010/07/20 Javascript
分享20款好玩的jQuery游戏
2011/04/17 Javascript
JavaScript学习笔记记录我的旅程
2012/05/23 Javascript
一个简单的弹性返回顶部JS代码实现介绍
2013/06/09 Javascript
基于js disabled=&quot;false&quot;不起作用的解决办法
2013/06/26 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
js实现楼层导航功能
2017/02/23 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
vue在使用ECharts时的异步更新和数据加载详解
2017/11/22 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
layui 弹出删除确认界面的实例
2019/09/06 Javascript
JavaScript实现筛选数组
2021/03/02 Javascript
[02:40]2014DOTA2 国际邀请赛中国区预选赛 四大豪门抵达华西村
2014/05/23 DOTA
python中set()函数简介及实例解析
2018/01/09 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
澳大利亚著名的纺织品品牌:Canningvale
2020/05/05 全球购物
什么是URL
2015/12/13 面试题
实习护理工作自我评价
2013/09/25 职场文书
员工年终演讲稿
2014/01/03 职场文书
员工工作表扬信范文
2014/01/13 职场文书
幼儿园小班评语
2014/04/18 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
学生穿着不得体检讨书
2014/10/12 职场文书
民主评议党员自我鉴定
2014/10/21 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书
深度学习tensorflow基础mnist
2021/04/14 Python