springboot实现读取nacos配置文件

 更新时间:2023年09月16日 16:21:37   作者:普通网友  
这篇文章主要介绍了springboot实现读取nacos配置文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

springboot读取nacos配置文件

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配置yml文件

首先导入nacos依赖

<!--        nacos客户端依赖  注册中心 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.2.6.RELEASE</version>
        </dependency>
<!--        nacos配置中心-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.2.6.RELEASE</version>
        </dependency>
 

一个是注册中心一个是配置中心

需要在bootstrap.yml配置服务名称和开发环境:

server:
	port:18080
spring:
	application: 
		name: userservice-server
	Profiles:
		active:dev  //开发环境
	cloud:
		nacos:
			discovery:
				server-addr: localhost:8848  /// 这是默认端口 注册中心地址
            config:
				server-addr: localhost:8848  /// 这是默认端口 配置中心地址
                file-extension: yaml  //nacos注册中心配置文件是yaml文件,最好在这里配置一下
 

然后就可以开始配置nacos配置中心了

Data ID: userservice-server-dev.yaml  //这个地方就是服务名称-开发环境.yaml 下面文件类别只有yaml

//group 默认就行不用改
//描述 按自己需求写就行
//配置格式:选yaml
//配置内容:按自己需求 写yaml配置文件就可以了  注意空格问题,多敲少敲读取不到 yml格式

一定注意格式敲正确,over

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot使用Redis实现消息队列的方法小结

    SpringBoot使用Redis实现消息队列的方法小结

    在应用中把Redis当成消息队列来使用已经屡见不鲜了,我想主要原因是当代应用十有八九都会用到 Redis,因此不用再引入其他消息队列系统,而且Redis提供了好几种实现消息队列的方法,用起来也简单,本文给大家介绍了SpringBoot使用Redis实现消息队列的方法小结
    2024-04-04
  • Java实现员工信息管理系统

    Java实现员工信息管理系统

    这篇文章主要为大家详细介绍了Java实现员工信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Java上转型和下转型对象

    Java上转型和下转型对象

    这篇文章给大家讲述了Java上转型和下转型对象的详细用法以及相关的代码分享,有兴趣的朋友可以学习下。
    2018-03-03
  • Java中POST、GET、@RequestBody和@RequestParam区别详析

    Java中POST、GET、@RequestBody和@RequestParam区别详析

    在前后端传json数据进行交互的时候,同学们会经常用到的两个注解,@RequestBody和@RequestParam主要是用来接收前端传给后端的json数据,下面这篇文章主要给大家介绍了关于Java中POST、GET、@RequestBody和@RequestParam区别的相关资料,需要的朋友可以参考下
    2022-10-10
  • Java毕业设计实战之财务预算管理系统的实现

    Java毕业设计实战之财务预算管理系统的实现

    这是一个使用了java+SSM+Jsp+Mysql+Layui+Maven开发的财务预算管理系统,是一个毕业设计的实战练习,具有财务预算管理该有的所有功能,感兴趣的朋友快来看看吧
    2022-02-02
  • 解决springboot配置文件组解决自动配置属性无法注入问题

    解决springboot配置文件组解决自动配置属性无法注入问题

    在使用Spring Boot时,可能会遇到配置文件属性注入失败的问题,本文描述了一个案例,其中尝试使用profile文件组指定不同环境下的配置文件,但遇到了属性无法成功注入的情况,提供的解决办法是将Spring Boot的版本号从2.2.0.RELEASE升级到2.4.0
    2024-09-09
  • 解决@Api注解不展示controller内容的问题

    解决@Api注解不展示controller内容的问题

    这篇文章主要介绍了解决@Api注解不展示controller内容的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教。
    2022-01-01
  • Spring加载属性文件方式(自动加载优先级问题)

    Spring加载属性文件方式(自动加载优先级问题)

    这篇文章主要介绍了Spring加载属性文件方式(自动加载优先级问题),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Java京东面试题之为什么HashMap线程不安全

    Java京东面试题之为什么HashMap线程不安全

    那天,小二去京东面试,面试官老王一上来就甩给了他一道面试题:为什么 HashMap 是线程不安全的?这个问题哪能难的住小二,这篇文章详细解答该题目
    2021-11-11
  • SpringBoot集成EasyExcel的应用场景分析

    SpringBoot集成EasyExcel的应用场景分析

    这篇文章主要介绍了SpringBoot集成EasyExcel的应用场景,java领域解析、生成excel比较有名的框架有apache poi、jxl等,今天通过实例代码给大家详细介绍,需要的朋友可以参考下
    2021-07-07

最新评论