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 Swing实现自助取款机系统
Jun 11 Java/Android
详解Java实践之抽象工厂模式
Jun 18 Java/Android
Spring Boot两种全局配置和两种注解的操作方法
Jun 29 Java/Android
Java比较两个对象中全部属性值是否相等的方法
Aug 07 Java/Android
Java网络编程之UDP实现原理解析
Sep 04 Java/Android
maven依赖的version声明控制方式
Jan 18 Java/Android
Android Flutter实现3D动画效果示例详解
Apr 07 Java/Android
详解Flutter和Dart取消Future的三种方法
Apr 07 Java/Android
Android在Sqlite3中的应用及多线程使用数据库的建议
Apr 24 Java/Android
java开发双人五子棋游戏
May 06 Java/Android
JavaScript正则表达式实现注册信息校验功能
May 30 Java/Android
Java结构型设计模式之组合模式详解
Sep 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 常用类整理
2009/12/23 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
2015/12/31 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
AngularJS快速入门
2015/04/02 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
js检测iframe是否加载完成的方法
2015/11/26 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
微信小程序 switch组件详解及简单实例
2017/01/10 Javascript
详谈表单格式化插件jquery.serializeJSON
2017/06/23 jQuery
react-native之ART绘图方法详解
2017/08/08 Javascript
js时间戳与日期格式之间转换详解
2017/12/11 Javascript
解决vue项目打包后提示图片文件路径错误的问题
2018/07/04 Javascript
node.js实现带进度条的多文件上传
2020/03/27 Javascript
Element Backtop回到顶部的具体使用
2020/07/27 Javascript
Python MD5文件生成码
2009/01/12 Python
Python获取脚本所在目录的正确方法
2014/04/15 Python
python 使用get_argument获取url query参数
2017/04/28 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
pytorch动态网络以及权重共享实例
2020/01/06 Python
在PyCharm中实现添加快捷模块
2020/02/12 Python
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
意大利香水和化妆品购物网站:Parfimo.it
2019/10/06 全球购物
酒店管理专业自荐信
2014/05/23 职场文书
护理工作个人总结
2015/03/03 职场文书
监理中标通知书
2015/04/16 职场文书
历史博物馆观后感
2015/06/05 职场文书
《梅花魂》教学反思
2016/02/18 职场文书
2016大学先进团支部事迹材料
2016/03/01 职场文书
anaconda python3.8安装后降级
2021/06/11 Python
Java使用JMeter进行高并发测试
2021/11/23 Java/Android
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android
Elasticsearch 基本查询和组合查询
2022/04/19 Python