zoukankan      html  css  js  c++  java
  • Spring boot 应用实现动态刷新配置

    1. 依赖

    需要引入下面三个依赖:

    compile('org.springframework.cloud:spring-cloud-starter-config')
    compile('org.springframework.boot:spring-boot-starter-actuator')
    compile('org.springframework.boot:spring-boot-starter-web')

    (1)spring-cloud-starter-config是为了实现刷新配置
    (2)spring-boot-starter-actuator是为了暴露修改/刷新配置的接口
    (3)spring-boot-starter-web是为了可以访问暴露的修改/刷新配置的接口

    2. 配置暴露接口

    application.properties

    #使用端口9999
    server.port=9999
    #暴露接口
    management.endpoints.web.exposure.include=env,refresh

    (1)env接口,可以获取配置(GET),也可以修改配置(POST)
    (2)refresh接口,可以刷新配置(POST),使得@RefreshScope标注的value可以重新注入。

    3. @RefreshScope

    在需要实时刷新配置的地方加上@RefreshScope注解

    4. 启动服务

    5. 修改配置

    访问localhost:9999/actuator/env(GET),可以获得此时的配置
    访问localhost:9999/actuator/env(POST)

    {
        "name":"somekey",
        "value":"newvalue"
    }

    如上可以把配置中somekey对应的值改为newvalue

    6. 获取配置值

    不调用刷新接口,直接获取注入的配置值,发现还是旧的值

    7. 刷新配置 重新获取

    访问localhost:9999/actuator/refresh(POST)刷新配置
    重新获取注入的配置值,发现是新的值

  • 相关阅读:
    Laravel源码解析 — 服务容器
    Java日志框架中需要判断log.isDebugEnabled()吗?
    使用C语言实现线性表
    new-delete
    webrtc-AudioprcessingModule 3A算法demo
    关于iPhone语音备忘录访问
    关于音频通话耗时
    关于Windows上使用OpenAL API声源音效
    c++ 类术语
    二分法查找
  • 原文地址:https://www.cnblogs.com/rinack/p/14037954.html
Copyright © 2011-2022 走看看