SpringBoot读取Nacos上配置文件的步骤详解

 更新时间:2024年03月10日 11:48:02   作者:Teln_小凯  
在 Spring Boot 应用程序中,可以使用 Spring Cloud Nacos 来实现从 Nacos 服务注册中心和配置中心读取配置信息,本文介绍如何在 Spring Boot 中读取 Nacos 上的配置文件的步骤,需要的朋友可以参考下

前言

在 Spring Boot 应用程序中,可以使用 Spring Cloud Nacos 来实现从 Nacos 服务注册中心和配置中心读取配置信息。以下是如何在 Spring Boot 中读取 Nacos 上的配置文件的步骤:

1. 引入依赖

首先,在 Spring Boot 项目的 pom.xml 文件中添加 Spring Cloud Nacos 的依赖:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2. 配置 Nacos 连接信息

将 Nacos 服务注册中心和配置中心的地址、命名空间等相关信息添加到 application.properties 或 application.yml 配置文件中:

spring.cloud.nacos.config.server-addr=localhost:8848
spring.cloud.nacos.config.namespace=

3. 编写配置文件

在 Nacos 配置中心创建配置文件(例如 ​application.properties​),并添加一些键值对,如:

user.name=John Doe
user.age=30

4. 读取配置信息

在 Spring Boot 的任何配置类或组件类中,可以使用 ​@Value​ 注解或 ​@ConfigurationProperties​ 注解来读取配置项:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
public class ConfigController {
 
    @Value("${user.name}")
    private String userName;
 
    @Value("${user.age}")
    private int userAge;
 
    @GetMapping("/userInfo")
    public String getUserInfo() {
        return "User Name: " + userName + ", Age: " + userAge;
    }
}

5. 刷新配置

如果想要在配置发生变化时动态刷新配置,可以在需要动态更新的 Bean 类上添加 ​@RefreshScope​ 注解:

import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
 
@Component
@RefreshScope
public class MyConfigBean {
 
    @Value("${my.config}")
    private String myConfig;
 
    // Getter and Setter
}

当配置发生变化后,可以通过访问 Actuator 端点 ​/actuator/refresh​ 来触发配置的刷新,以便及时获取最新的配置信息。

如果nacos上面有很多个配置文件,springboot中如何获取想要的配置文件?

1.在 Nacos 配置中心创建多个配置文件,例如 ​user.properties​ 和 ​database.properties​,并添加相应的键值对。

2.在 Spring Boot 项目的 ​application.properties​ 或 ​application.yml​ 中,指定需要获取的配置文件的 Data ID:

spring.cloud.nacos.config.shared-configs[0].data-id=user.properties
spring.cloud.nacos.config.shared-configs[1].data-id=database.properties

3.可以通过 ​@ConfigurationProperties​ 注解来读取指定的配置文件内容,例如:

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
 
@Component
@ConfigurationProperties("user")
public class UserConfig {
 
    private String userName;
    private int age;
 
    // Getters and Setters
}
 
@Component
@ConfigurationProperties("database")
public class DatabaseConfig {
 
    private String url;
    private String username;
    
    // Getters and Setters
}

在上面的示例中,​@ConfigurationProperties​ 注解中的 value 值指定了要绑定的配置文件的前缀,可以直接读取到该配置文件中的相关属性值。

注意: 在使用 ​@ConfigurationProperties​ 注解时,需要确保属性名与配置文件中的键名一致,Spring Boot 会自动根据前缀匹配来绑定配置项。

4.多文件配置和自动刷新也可参考如下配置:

以上就是SpringBoot读取Nacos上配置文件的步骤详解的详细内容,更多关于SpringBoot读取Nacos配置文件的资料请关注脚本之家其它相关文章!

相关文章

  • Java中的CAS锁机制(无锁、自旋锁、乐观锁、轻量级锁)详解

    Java中的CAS锁机制(无锁、自旋锁、乐观锁、轻量级锁)详解

    这篇文章主要介绍了Java中的CAS锁机制(无锁、自旋锁、乐观锁、轻量级锁)详解,CAS算法的作用是解决多线程条件下使用锁造成性能损耗问题的算法,保证了原子性,这个原子操作是由CPU来完成的,需要的朋友可以参考下
    2024-01-01
  • 关于RequestMapping注解的作用说明

    关于RequestMapping注解的作用说明

    这篇文章主要介绍了关于RequestMapping注解的作用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教。
    2022-01-01
  • 1秒钟实现Springboot 替换/写入 word文档里面的文字、图片功能

    1秒钟实现Springboot 替换/写入 word文档里面的文字、图片功能

    这篇文章主要介绍了Springboot 替换/写入 word文档里面的文字、图片,1秒钟实现,本文结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • SpringDataJpa写原生sql遇到的问题及解决

    SpringDataJpa写原生sql遇到的问题及解决

    这篇文章主要介绍了SpringDataJpa写原生sql遇到的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • java中Unsafe的使用讲解

    java中Unsafe的使用讲解

    这篇文章主要介绍了java中Unsafe的使用讲解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Mybatis-Plus接口BaseMapper与Services使用详解

    Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 使用jps命令查看Java进程的详细指南

    使用jps命令查看Java进程的详细指南

    jps是Java开发者和系统管理员的得力助手,它简化了Java进程监控的过程,使得快速检查应用运行状态变得轻而易举,在Java开发和运维场景中,jps是一个非常实用的命令行工具,本文介绍了如何有效地使用 jps命令来查看Java进程的详细指南,需要的朋友可以参考下
    2024-10-10
  • SpringBoot使用spring.factories加载默认配置的实现代码

    SpringBoot使用spring.factories加载默认配置的实现代码

    在日常开发过程中,发布一些产品或者框架时,会遇到某些功能需要一些配置才能正常运行,这时我们需要的提供默认配置项,同时用户也能覆盖进行个性化
    2024-06-06
  • 深入理解Spring Boot的日志管理

    深入理解Spring Boot的日志管理

    这篇文章主要给大家深入的介绍了Spring Boot日志管理的相关资料,文中介绍的很详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02
  • 设计模式在Spring框架中的应用汇总

    设计模式在Spring框架中的应用汇总

    这篇文章主要介绍了设计模式在Spring框架中的应用汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11

最新评论