> 技术文档 > 微服务之Nacos配置管理_nacos md5 微服务配置

微服务之Nacos配置管理_nacos md5 微服务配置


文章目录

  • 前言
  • 一、统一配置管理Nacos操作
  • 二、统一配置管理java操作
  • 三、Nacos配置自动更新
    • 1.添加注解@RefreshScope
    • 2.使用@ConfigurationProperties注解
    • 3.总结
  • 四、Nacos多环境配置共享
    • 1.配置文件
    • 2.多种配置的优先级
    • 3.总结
  • 总结

前言

一、统一配置管理Nacos操作
二、统一配置管理java操作
1.引入依赖
2.创建配置文件
3.测试
4.总结
三、Nacos配置自动更新
1.添加注解@RefreshScope
2.使用@ConfigurationProperties注解
3.总结
四、Nacos多环境配置共享
1.配置文件
2.多种配置的优先级
3.总结

一、统一配置管理Nacos操作

微服务之Nacos配置管理_nacos md5 微服务配置在Nacos中添加配置信息:
微服务之Nacos配置管理_nacos md5 微服务配置
在弹出表单中填写配置信息:
微服务之Nacos配置管理_nacos md5 微服务配置
配置获取的步骤如下:
微服务之Nacos配置管理_nacos md5 微服务配置


二、统一配置管理java操作

1.引入依赖

引入Nacos的配置管理客户端依赖:

 <!--nacos的配置管理依赖-->  com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config 

2.创建配置文件

在user-service(客户端服务提供者)中的resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml:

spring: application: name: userservice #服务名称 profiles: active: dev #环境 cloud: nacos: server-addr: localhost:8848 #nacos地址 config: file-extension: yaml #文件后缀名

注意!!!
SpringCloud 2.4版本之后不再优先读取bootstrap文件,这问题折磨我一天,一直读取不到bootstrap.yml文件,

解决办法:

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> <version>3.0.2</version></dependency>

导入依赖就可以了。

3.测试

我们在user-service(客户端服务提供者)中将pattern.dateformat这个属性注入到UserController中做测试:
完整代码:

package cn.itcast.user.web;import cn.itcast.user.pojo.User;import cn.itcast.user.service.UserService;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.*;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;@Slf4j@RestController@RequestMapping(\"/user\")public class UserController { @Autowired private UserService userService; @Value(\"${pattern.dateformat}\") private String dateformat; @GetMapping(\"now\") public String now(){ return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat)); } // ...略}

结果如下:
微服务之Nacos配置管理_nacos md5 微服务配置

4.总结

微服务之Nacos配置管理_nacos md5 微服务配置

三、Nacos配置自动更新

Nacos中的配置文件变更后,微服务无需重启就可以感知。不过需要通过下面两种配置实现:

1.添加注解@RefreshScope

微服务之Nacos配置管理_nacos md5 微服务配置
完整代码如下:

package cn.itcast.user.web;import cn.itcast.user.pojo.User;import cn.itcast.user.service.UserService;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.web.bind.annotation.*;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;@Slf4j@RestController@RequestMapping(\"/user\")@RefreshScopepublic class UserController { @Autowired private UserService userService; @Value(\"${pattern.dateformat}\") private String dateformat; @GetMapping(\"now\") public String now(){ return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat)); } /** * 路径: /user/110 * * @param id 用户id * @return 用户 */ @GetMapping(\"/{id}\") public User queryById(@PathVariable(\"id\") Long id) { return userService.queryById(id); }}

2.使用@ConfigurationProperties注解

微服务之Nacos配置管理_nacos md5 微服务配置

完整代码如下

package cn.itcast.user.config;import lombok.Data;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;@Component@Data@ConfigurationProperties(prefix = \"pattern\")public class PatternProperties { private String dateformat;}

UserController.java

package cn.itcast.user.web;import cn.itcast.user.config.PatternProperties;import cn.itcast.user.pojo.User;import cn.itcast.user.service.UserService;import lombok.extern.slf4j.Slf4j;import org.checkerframework.checker.units.qual.A;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.web.bind.annotation.*;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;@Slf4j@RestController@RequestMapping(\"/user\")//@RefreshScopepublic class UserController { @Autowired private UserService userService;// @Value(\"${pattern.dateformat}\")// private String dateformat; @Autowired private PatternProperties properties; @GetMapping(\"now\") public String now(){ return LocalDateTime.now().format(DateTimeFormatter.ofPattern(properties.getDateformat())); } /** * 路径: /user/110 * * @param id 用户id * @return 用户 */ @GetMapping(\"/{id}\") public User queryById(@PathVariable(\"id\") Long id) { return userService.queryById(id); }}

3.总结

微服务之Nacos配置管理_nacos md5 微服务配置

四、Nacos多环境配置共享

1.配置文件

其实微服务启动时,会去nacos读取多个配置文件,例如:

  • [spring.application.name]-[spring.profiles.active].yaml,例如:userservice-dev.yaml

  • [spring.application.name].yaml,例如:userservice.yaml

[spring.application.name].yaml不包含环境,因此可以被多个环境共享。

微服务之Nacos配置管理_nacos md5 微服务配置

2.多种配置的优先级

微服务之Nacos配置管理_nacos md5 微服务配置

3.总结

微服务之Nacos配置管理_nacos md5 微服务配置

总结

以上就是微服务之Nacos配置管理的相关知识,希望对你有所帮助。
积跬步以至千里,积怠惰以至深渊。时代在这跟着你一起努力哦!