专栏首页爱明依SrpingCloud ---github上面如何使用webHook实现配置文件修改 ,客户端自动刷新

SrpingCloud ---github上面如何使用webHook实现配置文件修改 ,客户端自动刷新

SrpingCloud —github上面如何使用webHook实现配置文件修改 ,客户端自动刷新

一:客户端(消费者)端添加maven依赖

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

增加了spring-boot-starter-actuator包,spring-boot-starter-actuator是一套监控的功能,可以监控程序在运行时状态,其中就包括/refresh的功能。

二Controller层开启自动更新机制

需要给加载变量的类上面加载@RefreshScope,在客户端执行/refresh的时候就会更新此类下面的变量值。

package com.demo.web;

import com.demo.feign.HelloRemote;
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.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created by wo on 2018-03-08.
 */
@RestController
@RefreshScope// 使用该注解的类,会在接到SpringCloud配置中心配置刷新的时候,
// 自动将新的配置更新到该类对应的字段中
public class ConsumeController {

    @Autowired
    private HelloRemote helloRemote;


    @RequestMapping("/hello/{name}")
    public String index(@PathVariable("name") String name) {
        return helloRemote.dc();
    }

     @Value("${neo.hello}")
    private String hello;

    @RequestMapping("/hello")
    public String from() {
        return this.hello;
    }
}

三:配置文件修改

springboot 1.5.X 以上默认开通了安全认证,所以需要在配置文件application.properties添加以下配置

management.security.enabled=false

四:测试

,以post请求的方式来访问http://localhost:port/refres 就会更新修改后的配置文件。

五:提交代码就自动调用客户端来更新

5.1## github上配置WebHook

参数说明:

Payload URL :触发后回调的URL
Content type :数据格式,两种一般使用json
Secret :用作给POST的body加密的字符串。采用HMAC算法
events :触发的事件列表。

events事件类型 描述 push 仓库有push时触发。默认事件 create 当有分支或标签被创建时触发 这样我们就可以利用hook的机制去触发客户端的更新,但是当客户端越来越多的时候hook支持的已经不够优雅,另外每次增加客户端都需要改动hook也是不现实的。其实Spring Cloud给了我们更好解决方案,后面文章来介绍。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • jenkins(二) 创建和配置基于Mvven的JEE WEB应用程序

    爱明依
  • hashMap 的工作原理

    爱明依
  • jquery autoComplete 自定义回写样式

       <form:input path="itemName" id="itemName" htmlEscape="false" class="form-cont...

    爱明依
  • Spring Boot---(24)springboot整合RabbitMQ

    访问接口:http://localhost:8088/mq1/getUser1 然后访问控制台(上一篇:centOs安装rabbitMQ 有配置控制台的步骤...

    IT云清
  • (16)SpringBoot整合RabbitMQ

    https://blog.csdn.net/weixin_39800144/article/details/89037698

    IT云清
  • Spring Boot使用CORS解决跨域问题

    Web开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS等等。 CORS 与 JSONP 相比: 1、 JSONP 只能实现 GET 请...

    itlemon
  • Springboot中使用redis进行api防刷限流

    首先我们编写注解类AccessLimit,使用注解方式在方法上限流更优雅更方便!三个参数分别代表有效时间、最大访问次数、是否需要登录,可以理解为 seconds...

    海向
  • 在Spring MVC中使用注解的方式校验RequestParams

    庞小明
  • Spring Boot---(1)新建Spring Boot 项目

    至此,项目就创建完成了。我们如果在启动类上加上@RestController (具体用法后面会介绍:Spring Boot---(5)SpringBoot常用注...

    IT云清
  • Springboot @RequestBody 传递 List

    本文节选自电子书《Netkiller Java 手札》 6.1.4.1. @RequestBody 传递 List package cn.netkille...

    netkiller old

扫码关注云+社区

领取腾讯云代金券