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框架入门之简单介绍SpringBoot框架
Jun 18 Java/Android
Java数据开发辅助工具Docker与普通程序使用方法
Sep 15 Java/Android
JAVA API 实用类 String详解
Oct 05 Java/Android
maven依赖的version声明控制方式
Jan 18 Java/Android
Android基于Fresco实现圆角和圆形图片
Apr 01 Java/Android
SpringBoot整合Minio文件存储
Apr 03 Java/Android
Java 超详细讲解hashCode方法
Apr 07 Java/Android
Java实现扫雷游戏详细代码讲解
May 25 Java/Android
Android开发手册Chip监听及ChipGroup监听
Jun 10 Java/Android
详解Spring Bean的配置方式与实例化
Jun 10 Java/Android
SpringBoot项目部署到阿里云服务器的实现步骤
Jun 28 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
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
PHP 命名空间实例说明
2011/01/27 PHP
ThinkPHP中的常用查询语言汇总
2014/08/22 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
PHP 实现重载
2021/03/09 PHP
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
jQuery无刷新分页完整实例代码
2015/10/27 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
基于JS实现web端录音与播放功能
2019/04/17 Javascript
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
2017/08/31 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
2017/10/16 Python
用十张图详解TensorFlow数据读取机制(附代码)
2018/02/06 Python
调试Django时打印SQL语句的日志代码实例
2019/09/12 Python
np.dot()函数的用法详解
2020/01/17 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
python修改微信和支付宝步数的示例代码
2020/10/12 Python
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
中专毕业生个人职业生涯规划
2014/02/19 职场文书
餐厅执行经理岗位职责范本
2014/02/26 职场文书
项目经理聘任书
2014/03/29 职场文书
青年标兵事迹材料
2014/08/16 职场文书
给病人的慰问信
2015/03/23 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
家长意见书
2015/06/04 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS