写点什么

SpringCloud- 分布式配置中心【动态刷新】

  • 2022 年 4 月 23 日
  • 本文字数:1082 字

    阅读完需:约 4 分钟

</dependencies>


</dependencyManagement>


<dependencies>


<dependency>


<groupId>org.springframework.boot</groupId>


<artifactId>spring-boot-starter-web</artifactId>


</dependency>


<dependency>


<groupId>org.springframework.cloud</groupId>


<artifactId>spring-cloud-starter-eureka</artifactId>


</dependency>


<dependency>


<groupId>org.springframework.cloud</groupId>


<artifactId>spring-cloud-starter-config</artifactId>


</dependency>


<dependency>


<groupId>org.springframework.boot</groupId>


<artifactId>spring-boot-starter-actuator</artifactId>


</dependency>


</dependencies>


<build>


<plugins>


<plugin>


<groupId>org.springframework.boot</groupId>


<artifactId>spring-boot-maven-plugin</artifactId>


</plugin>


</plugins>


</build>


</project>


[](()3.修改配置




spring.application.name=config-client-refresh


server.port=9051


#设置服务注册中心地址,指向另一个注册中心


eureka.client.serviceUrl.defaultZone=http://dpb:123456@eureka1:8761/eureka/,http://dpb:123456@eureka2:8761/eureka/


#默认 false,这里设置 true,表示开启读取配置中心的配置


spring.cloud.config


.discovery.enabled=true


#对应 eureka 中的配置中心 serviceId,默认是 configserver


spring.cloud.config.discovery.serviceId=config-server


#指定环境


spring.cloud.config.profile=dev


#git 标签


spring.cloud.config.label=master


#springboot 默认开启了权限拦截 会导致 /refresh 出现 401,拒绝访问


management.security.enabled=false


同时我们需要在码云中创建一个新的配置文件




[](()4.刷新请求




因为 refresh 命令只支持 post 方式提交,所以我们不能直接在浏览器中访问。



现在获取信息



[](()5.修改 bean 对象的作用域




在 spring 中 bean 对象默认是单例模式,所以即便项目被刷新了,成员变量的值也不会改变,所以我们需要改变了 bean 对象的作用域


@RestController


@RefreshScope //刷新作用域


public class ShowController {


@Value("${e-book}")


private String msg;


@RequestMapping("/showMsg")


public String showMsg(){


return msg;


}


}


[](()6.通过 RestTemplate 发送 post 请求




/**


  • 通过 RestTemplate 发送 post 请求来刷新

  • @param args


*/


public static void main(String[] args) {


RestTempl 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 ate template = new RestTemplate();


String url = "http://localhost:9051/refresh";


template.postForLocation(url, null);


System.out.println("----");


}


[](()7.测试




用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
SpringCloud-分布式配置中心【动态刷新】_Java_爱好编程进阶_InfoQ写作社区