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实现设计模式之责任链模式
Jun 23 Java/Android
Spring Boot 启动、停止、重启、状态脚本
Jun 26 Java/Android
SpringBoot整合JWT的入门指南
Jun 29 Java/Android
关于maven依赖 ${xxx.version}报错问题
Jan 18 Java/Android
SpringCloud Feign请求头删除修改的操作代码
Mar 20 Java/Android
Java实战之课程信息管理系统的实现
Apr 01 Java/Android
springboot用户数据修改的详细实现
Apr 06 Java/Android
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
Apr 08 Java/Android
Spring Boot 使用 Spring-Retry 进行重试框架
Apr 24 Java/Android
JAVA springCloud项目搭建流程
May 11 Java/Android
springboot实现string转json json里面带数组
Jun 16 Java/Android
SpringCloud超详细讲解Feign声明式服务调用
Jun 21 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
php5 mysql分页实例代码
2008/04/10 PHP
PHP版自动生成文章摘要
2008/07/23 PHP
php中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
php求数组全排列,元素所有组合的方法
2016/05/05 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
js操作二级联动实现代码
2010/07/27 Javascript
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
JS动态创建Table,Tr,Td并赋值的具体实现
2013/07/05 Javascript
jquery中radio checked问题
2015/03/16 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
2017/03/02 Javascript
JS异步函数队列功能实例分析
2017/11/28 Javascript
vue.js项目nginx部署教程
2018/04/05 Javascript
JavaScript实现星级评价效果
2019/05/17 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
如何手写一个简易的 Vuex
2020/10/10 Javascript
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
python查看模块,对象的函数方法
2018/10/16 Python
在Pycharm中执行scrapy命令的方法
2019/01/16 Python
pytorch masked_fill报错的解决
2020/02/18 Python
python利用opencv实现颜色检测
2021/02/23 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
2013/05/01 面试题
幼儿园家长评语
2014/02/10 职场文书
《最大的“书”》教学反思
2014/02/14 职场文书
电子专业毕业生自荐信
2014/05/25 职场文书
学生偷窃检讨书
2014/09/25 职场文书
离婚财产处理协议书
2014/09/30 职场文书
2015年学生资助工作总结
2015/05/25 职场文书
python爬虫--selenium模块
2021/03/31 Python
OpenCV全景图像拼接的实现示例
2021/06/05 Python
JavaScript前端面试扁平数据转tree与tree数据扁平化
2022/06/14 Javascript