SpringCloud Nacos配置管理 -- 配置热更新多环境配置共享IDEA按不同环境启动的小技巧

Posted CodeJiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud Nacos配置管理 -- 配置热更新多环境配置共享IDEA按不同环境启动的小技巧相关的知识,希望对你有一定的参考价值。

本节案例承接上节案例

1. 配置热更新

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


1.1 方式一:在@Value注入的变量所在类上添加注解@RefreshScope


1.2 方式二:使用@ConfigurationProperties注解(推荐使用)

新建一个配置类PatternProperties.java

package cn.itcast.user.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data // 提供get/set方法
@Component // 把这个类注入到IOC
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties 
    private String dateformat; // 匹配 pattern.dateformat 自动更新

替换原来的获取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.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

@Slf4j
@RestController
@RequestMapping("/user")
//@RefreshScope
public 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);
    

效果展示:


1.3 小结


2. 多环境配置共享

有的配置是多个环境共享的,这样就可以把这一部分的配置单独放在一个配置文件里面,方面以后修改。

配置环境的优先级:

小结:


3. IDEA按不同环境启动的小技巧

原始方式:

我们平时在配置启动环境的时候都是手动修改配置环境再次启动。

但是这样每次都会更改代码,不是很方便。

小技巧:




以上是关于SpringCloud Nacos配置管理 -- 配置热更新多环境配置共享IDEA按不同环境启动的小技巧的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud 核心组件Nacos配置管理&配置拉取第4章

七SpringCloud实用篇_Nacos配置管理

七SpringCloud实用篇_Nacos配置管理

SpringCloud学习笔记-p2(Nacos注册中心&Nacos配置管理)

springboot整合SpringCloud Nacos实现配置管理和服务发现

springboot整合SpringCloud Nacos实现配置管理和服务发现