返回顶部
首页 > 资讯 > 后端开发 > JAVA >读取nacos文件的方式
  • 710
分享到

读取nacos文件的方式

javaspring 2023-09-07 14:09:08 710人浏览 独家记忆
摘要

读取Nacos的配置文件的方式 文章目录 读取nacos的配置文件的方式前言一、使用SDK的方式去读取二、使用Spring来读取配置文件三、使用SpringBoot来读取配置文件四、使用Spr

读取Nacos的配置文件的方式

文章目录


前言

今天学习了一下从SDK到SpringCloud的各种方式去读取nacos文件。记下来供以后使用。


一、使用SDK的方式去读取

  1. 在pom.xml里面引入nacos.client的包。代码如下:
<dependency>            <groupId>com.alibaba.nacosgroupId>            <artifactId>nacos-clientartifactId>            <version>2.0.4version> dependency>

这里默认你已经使用了spring启动所必要的包。

  1. 在一个可以实现交互的方法(Controller类方法也好,junit测试方法也行)的内部使用nacosFactory创建configService对象,然后调用getConfig方法输入nacos地址、dataid以及连接超时的阈值即可获得整个配置文件的内容,类型是String。代码如下:
public void getNacosInfo() {        String url = "Http://localhost:8848/nacos";// nacos地址        String dataId = "application-dev.yml";// nacos配置文件的名字        String group = "DEFAULT_GROUP";// 所属组,一般默认,不需要你填        try {            Properties properties = new Properties();//为了将地址传入configService而创建的对象,人家方法要这类型            properties.put("serverAddr", url);            ConfigService configService = NacosFactory.createConfigService(properties);            String config = configService.getConfig(dataId, group, 5000);            // System.out.println(config);//                    }catch (Exception e) {            e.printStackTrace();        }    }
  1. 该方法还能实现监听功能,即一旦nacos的配置文件发生变化,你能够知道且能够做出相应的动作。代码如下:
// 监听application-dev.yml文件,一旦发生变换,在控制台输出configService.addListener(dataId, group, new Listener() {                @Override                public Executor getExecutor() {                    return null;                }                @Override                public void receiveConfigInfo(String s) {                    System.out.println(s);                }            });

二、使用Spring来读取配置文件

在pom.xml中引入nacos-spring-context包,代码如下(示例):

<dependency>            <groupId>com.alibaba.nacosgroupId>            <artifactId>nacos-spring-contextartifactId>            <version>1.1.1version>dependency>
  1. 在启动类的class上加上注解@EnableNacosConfig(globalProperties = @NacosProperties(serverAddr = “http://localhost:8848/nacos”))以及@NacosPropertiesSource(dataId = “application-dev.yml”)。就是用注解的形式代替来之前的输入nacos地址和dataId。代码如下(示例):
@EnableNacosConfig(globalProperties = @NacosProperties(serverAddr = "http://localhost:8848/nacos"))@NacosPropertySource(dataId = "application-dev.yml", autoRefreshed = true)@RestControllerpublic class WEBApplication {    @RequestMapping("/meg", method = RequestMethod.GET)    public String getInfo() {        // NacosConfigration是个配置类,扫描了NacosInfo类,创建了NacosIndo的Bean。        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(NacosConfigration.class);        // nacosInfo类在下面       NacosInfo nacosInfo = context.getBean(NacosInfo.class);       return nacosInfo.getdataId();    }}

使用@value注解的形式读取你想要的配置文件,代码如下(示例):

@Componentpublic class NacosInfo {    @Value("${feign.sentinel.enabled}")    private String dataId;    public String getdataId(){        return dataId;    }}

三、使用SpringBoot来读取配置文件

在pom.xml中引入nacos-config-spring-boot-starter包,代码如下(示例):

<dependency>            <groupId>com.alibaba.bootgroupId>            <artifactId>nacos-config-spring-boot-starterartifactId>            <version>0.2.12version>dependency>

因为该包包含了Spring注解部分的内容,所以直接使用Spring的注解方式也是行得通的,直接声明在启动类上就行。这里主要是使用application.properties的方式去实现,代码如下(示例):

nacos.config.server-addr=127.0.0.1:8848nacos.config,dataId=application-dev.yml

使用@value注解的形式读取你想要的配置文件,代码如下(示例):

@Componentpublic class NacosInfo {    @Value("${feign.sentinel.enabled}")    private String dataId;    public String getdataId(){        return dataId;    }}

四、使用SprinGCloud来读取配置文件

在pom.xml中引入spring-cloud-starter-alibaba-nacos-config包,代码如下(示例):

<dependency>            <groupId>com.alibaba.cloudgroupId>            <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>            <version>2.2.8.RELEASEversion>dependency>

这里使用bootstrap.properties来配置nacos的地址和dataId。除此之外,还可以配置查找文件的匹配方式。注意:这里的包没有包含注解方式的内容,所以如果你想继续使用注解的方式,你需要引入Spring方式的包,代码如下(示例):

spring.cloud.nacos.server-addr=127.0.0.1:8848 // nacos地址spring.application.name=test //查找的文件名spring.profiles.active=dev //匹配的变量spring.cloud.nacos.config.file-extension=yml //匹配的后缀名

这里直接看,可能看不懂,所以还要介绍点东西:
1.首先,springcloud会默认匹配spring.application.name为文件名。
2.然后,它会去找spring.application.name + 后缀名 的文件,后缀名默认是properties。举个例子,我如果不声明yml,那么它会默认找test.properties文件。
3.最后, 它会去找spring.application.name + “-” + spring.profiles.active + 后缀名 的文件。这里的话,它会去找test-dev.yml文件。
当你想要的值在这三个文件中都存在时,它去找的优先级是3 -> 2 -> 1。

使用@value注解的形式读取你想要的配置文件。值读到后直接自动装配对象,调用即可。代码如下(示例):

@Componentpublic class NacosInfo {    @Value("${feign.sentinel.enabled}")    private String dataId;    public String getdataId(){        return dataId;    }}

五、读取多个配置文件

这里我默认使用SpringCloud的方式读取多个配置文件。除了读取多个配置文件以为,用法与SpringCloud一致。

使用bootstrap.properties来配置nacos的地址和dataId。在读取主配置文件之外,加上若干个其他的配置文件,代码如下(示例):

// 主配置文件设置spring.cloud.nacos.server-addr=127.0.0.1:8848 //nacos地址spring.application.name=test //主配置文件名spring.profiles.active=dev //匹配变量spring.cloud.nacos.config.file-extension=yml //后缀名,同时也将读取到的文件转换成yml文件类型// 其他配置文件设置spring.cloud.nacos.config.extension-configs[0].data-id=application-dev.yml //其他文件名// spring.cloud.nacos.config.shared-configs[0].data-id=application-dev.yml //与上一条功能一样spring.cloud.nacos.config.extension-configs[0].file-extension=yml //其他文件后缀名

这里添加其他配置文件有两种方式,一种是shared-configs,另一种是extension-configs。功能是一样的。区别在于extension-configs的优先级更高。但它们都低于主配置。shared-configs代表的含义是该配置文件有其他服务会使用。而extension-configs则是只有自己会使用,其他服务不会使用。


总结

记录读取nacos文件的各种方式,后续会加上注册nacos的部分。

来源地址:https://blog.csdn.net/silence__is_gold/article/details/129423174

--结束END--

本文标题: 读取nacos文件的方式

本文链接: https://lsjlt.com/news/398422.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 读取nacos文件的方式
    读取nacos的配置文件的方式 文章目录 读取nacos的配置文件的方式前言一、使用SDK的方式去读取二、使用Spring来读取配置文件三、使用SpringBoot来读取配置文件四、使用Spr...
    99+
    2023-09-07
    java spring
  • Unity 读取文件 TextAsset读取配置文件方式
    1 支持文件类型 .txt .html .htm .xml .bytes .json .csv .yaml .fnt 2 寻找文件 1 //Load texture from d...
    99+
    2024-04-02
  • springboot读取nacos配置文件的实现
    目录首先,Nacos 的配置文件如下 第一种方式来解析第二种方式来解析SpringBoot 注册服务到 Nacos 上,由 Nacos 来做服务的管理。在 Nacos的配置...
    99+
    2024-04-02
  • Node.js读取文件的三种方式
    本篇内容介绍了“Node.js读取文件的三种方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!学习 Nod...
    99+
    2024-04-02
  • java 读取文件的几种方式
    在 Java 中有几种常用的方式来读取文件: 使用 FileInputStream 类以字节的方式读取文件。 使用 BufferedReader 在字符输入流上包装一个缓冲区,以行为单位读取文件。 使用 Scanner 类以分隔符为标志...
    99+
    2023-09-02
    java servlet 开发语言
  • Python读取文件的多种方式
    在Python编程中,读取文件是非常常见的操作。Python提供了多种读取文件的方式,本文将介绍其中的几种方式。 1. 使用open函数读取文件 使用Python内置函数open()可以打开一个文件,并返回一个文件对象。在文件对象上可以调用...
    99+
    2023-09-02
    python pandas 数据分析
  • Java读取文件的几种方式
    1. 使用流读取文件 public static void stream() { String fileName = "D:\\test.txt"; final String CHARSET_NAME = "UTF-8"; ...
    99+
    2023-09-09
    java 开发语言 servlet 前端
  • Excel文件读取的两种方式
    1、Pandas库的读取操作 from pandas import read_excel dr=read_excel(filename,header) dr#dataframe数据 dw=DataFrams(data=dict,colum...
    99+
    2023-01-31
    两种 方式 文件
  • java— 读取JSON文件的多种方式
    大部分内容参考自: https://blog.csdn.net/csdn_halon/article/details/120287992 在开发过程中有时会遇到需要读取本地.json文件的需求,通常会自己写Reader代码去读,但是...
    99+
    2023-09-01
    java json Powered by 金山文档
  • java 读取json文件的2种方式
    1 背景介绍 研发过程中,经常会涉及到读取配置文件等重复步骤,也行是.conf文件,也许是.json文件,但不管如何他们最终都需要进入到jave的inputStream里面。下面以读取.json文件为例 2 FileInputStream读...
    99+
    2023-08-18
    java json linux
  • C++读取文件的方式有哪些
    这篇文章主要讲解了“C++读取文件的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++读取文件的方式有哪些”吧!C++可以根据不同的目的来选取文件的读取方式,目前为止学习了C++...
    99+
    2023-07-05
  • bootstrap.yml如何读取nacos配置中心的配置文件
    目录bootstrap.yml读取nacos配置中心配置文件依赖的版本交由父模块进行版本控制了(另附上依赖代码)父模块的依赖管理总结bootstrap.yml读取nacos配置中心配...
    99+
    2022-12-28
    bootstrap.yml nacos配置中心 nacos配置文件
  • springboot中.yml文件参数的读取方式
    目录yml文件参数的读取附上一个较为常见的application.yml文件示例正常在controller中通过config文件的读取关于yml文件书写的注意事项yml文件参数的读取...
    99+
    2024-04-02
  • C++读取文件的四种方式总结
    C++可以根据不同的目的来选取文件的读取方式,目前为止学习了C++中的四种文件读取方式。 C++文件读取的一般步骤: 1、包含头文件 #include<fstream> ...
    99+
    2023-05-15
    C++实现文件读取方式 C++文件读取 C++文件
  • Go语言读取文件的四种方式
    目录前言整个文件读取按行读取逐个单词读取以数据块的形式读取文件二进制读取总结前言 这篇文章将讨论如何在 Golang 中读取文件。我们将使用以下包来处理这些文件。 os 包提供了一个...
    99+
    2023-05-15
    Go 读取文件
  • springboot读取resources下文件的方式详解
    项目中很多时候需要读取自定义配置文件,本地开发工具怎么写都成功但是部署到服务其上就出现问题, 异常BOOT-INF/classes!/config.xml (文件名、目录名或卷标语法...
    99+
    2024-04-02
  • springboot配置文件读取pom文件信息方式
    目录配置文件读取pom文件信息解决的问题解决修改后的写法maven打包命令可能会出现的一些问题Pom文件依赖配置说明scope依赖范围配置文件读取pom文件信息 解决的问题 spri...
    99+
    2024-04-02
  • python读取excel格式的文件
    使用 xlrd 能够很方便的读取 excel 文件内容,而且这是个跨平台的库,能够在windows,linux/unix,等平台上面使用。软件可以去这个地址http://www.lexicon.net/sjmachin/xlrd.htm下载...
    99+
    2023-01-31
    格式 文件 python
  • C#读取文件的方法
    本篇内容介绍了“C#读取文件的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C#读取文件高效方法问题的提出:你平时是怎么读取文件的?使用...
    99+
    2023-06-18
  • 使用springboot打包后的文件读取方式
    目录springboot打包后的文件读取文件打包问题文件读取问题Springboot打包后读取不到文件解决办法1 失败。。解决办法 2springboot打包后的文件读取 在使用了s...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作