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 将PPT幻灯片转为HTML文件的实现思路
Jun 11 Java/Android
浅谈@Value和@Bean的执行顺序问题
Jun 16 Java/Android
Netty结合Protobuf进行编解码的方法
Jun 26 Java/Android
图解排序算法之希尔排序Java实现
Jun 26 Java/Android
springboot项目以jar包运行的操作方法
Jun 30 Java/Android
Java获取e.printStackTrace()打印的信息方式
Aug 07 Java/Android
java后台调用接口及处理跨域问题的解决
Mar 24 Java/Android
Java 多线程协作作业之信号同步
May 11 Java/Android
Java实现扫雷游戏详细代码讲解
May 25 Java/Android
Android实现图片九宫格
Jun 28 Java/Android
SpringBoot项目部署到阿里云服务器的实现步骤
Jun 28 Java/Android
JDK8中String的intern()方法实例详细解读
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
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
php实现的简单检验登陆类
2015/06/18 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
JS 树形递归实例代码
2010/05/18 Javascript
用jQuery获取IE9下拉框默认值问题探讨
2013/07/22 Javascript
jquery网页元素拖拽插件效果及实现
2013/08/05 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
jQuery知识点整理
2015/01/30 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
js操作table元素实现表格行列新增、删除技巧总结
2015/11/18 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
2016/11/01 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
vue后台管理之动态加载路由的方法
2018/08/13 Javascript
JavaScript中Dom操作实例详解
2019/07/08 Javascript
vue props 单项数据流实例分享
2020/02/16 Javascript
vue实现登录拦截
2020/06/29 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
Python numpy实现数组合并实例(vstack,hstack)
2018/01/09 Python
python pygame实现2048游戏
2018/11/20 Python
Python匿名函数及应用示例
2019/04/09 Python
详解python中index()、find()方法
2019/08/29 Python
python通过实例讲解反射机制
2019/10/17 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
日本高岛屋百货购物网站:TAKASHIMAYA
2019/03/24 全球购物
高中生学习生活的自我评价
2013/10/09 职场文书
小区门卫值班制度
2014/01/24 职场文书
审美与表现自我评价
2015/03/09 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
python中os.path.join()函数实例用法
2021/05/26 Python
Kubernetes中Deployment的升级与回滚
2022/04/01 Servers