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使用jmeter进行压力测试
Jul 09 Java/Android
详细了解java监听器和过滤器
Jul 09 Java/Android
Java Socket实现多人聊天系统
Jul 15 Java/Android
SpringBoot SpringEL表达式的使用
Jul 25 Java/Android
Sleuth+logback 设置traceid 及自定义信息方式
Jul 26 Java/Android
idea 在springboot中使用lombok插件的方法
Aug 02 Java/Android
Java比较两个对象中全部属性值是否相等的方法
Aug 07 Java/Android
OpenCV实现反阈值二值化
Nov 17 Java/Android
剑指Offer之Java算法习题精讲二叉树专项训练
Mar 21 Java/Android
Java 超详细讲解hashCode方法
Apr 07 Java/Android
Android开发 使用文件储存的方式保存QQ密码
Apr 24 Java/Android
java实现web实时消息推送的七种方案
Jul 23 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数据库调用类调用实例(详细注释)
2012/07/12 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
Jquery AJAX 用于计算点击率(统计)
2010/06/30 Javascript
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
使用javascript创建快捷方式的简单实例
2013/08/09 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
jquery获取radio值实例
2014/10/16 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
Vue CLI3中使用compass normalize的方法
2019/05/30 Javascript
Vue的生命周期操作示例
2019/09/17 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
[01:10:49]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
Python读取文件内容的三种常用方式及效率比较
2017/10/07 Python
Python assert关键字原理及实例解析
2019/12/13 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
matplotlib自定义鼠标光标坐标格式的实现
2021/01/08 Python
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
哈萨克斯坦移动和数字技术在线商店:SatelOnline.kz
2020/09/04 全球购物
室内设计专业个人的自我评价
2013/12/18 职场文书
舞蹈教师自荐信
2014/01/27 职场文书
公司开除员工通知
2015/04/22 职场文书
党员带头倡议书
2015/04/29 职场文书
网络营销实训总结
2015/08/03 职场文书
公司员工管理制度
2015/08/04 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
Python中的np.argmin()和np.argmax()函数用法
2021/06/02 Python
SQL Server删除表中的重复数据
2022/05/25 SQL Server