公众号:java乐园

在《配置中心》这一篇博文里学习了如何git获取配置文件。大概的流程可以用下图来概括。

《配置中心》这篇博文说的是Config Server,本篇将和大家看看如何编写一个Config Client从Config Server获取配置。

1、 先在仓库中创建如下配置文件(具体参考下面地址)

https://gitee.com/hjj520/spring-cloud-2.x/tree/master/config-repos/sc-config-client

2、 创建maven项目sc-config-client,对应的pom.xml如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>spring-cloud</groupId>

<artifactId>sc-config-client</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>

<name>sc-config-client</name>

<url>http://maven.apache.org</url>

<parent>

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

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

<version>2.0.4.RELEASE</version>

</parent>

<dependencyManagement>

<dependencies>

<dependency>

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

<artifactId>spring-cloud-dependencies</artifactId>

<version>Finchley.RELEASE</version>

<type>pom</type>

</dependency>

</dependencies>

</dependencyManagement>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<maven.compiler.source>1.8</maven.compiler.source>

<maven.compiler.target>1.8</maven.compiler.target>

</properties>

<dependencies>

<dependency>

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

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

<version>2.0.1.RELEASE</version>

</dependency>

<!--

<dependency>

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

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

<version>2.0.1.RELEASE</version>

</dependency>

-->

<dependency>

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

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

</dependency>

<dependency>

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

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

<version>2.0.1.RELEASE</version>

</dependency>

</dependencies>

</project>

其中:spring-cloud-starter-config与spring-cloud-config-client可以二选一,但是根据选择的依赖不同对应的配置文件有些许不一样。spring-cloud-starter-config已经包含spring-cloud-config-client,所以选择依赖spring-cloud-starter-config。

3、 创建配置文件bootstrap.yml

#服务端口

server:

port: 8200

eureka:

client:

serviceUrl:

defaultZone: http://localhost:5001/eureka/

spring:

application:

name: sc-config-client

cloud:

config:

label: master # 配置文件所在分支

#uri: http://127.0.0.1:8100/ #配置服务中心

profile: dev # dev根据具体情况来修改

discovery:

serviceId: sc-config-server #配置服务实例名称

enabled: true #开启配置服务发现

备注:sc-config-server为配置服务实例名称,对应sc-config-server项目的bootstrap.yml配置文件的如下配置项

4、 创建启动类ConfigClientApplication.java

package sc.config.client;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

//import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication

//@EnableDiscoveryClient

@EnableEurekaClient

public class ConfigClientApplication {

public static void main(String[] args) {

SpringApplication.run(ConfigClientApplication.class, args);

}

}

5、 为了验证是否能不能在config server获取到配置项,创建一个restful类型的controller:ConfigController.java

package sc.config.client.controller;

import java.util.HashMap;

import java.util.Map;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController

public class ConfigController {

// git配置文件里的key

@Value("${jdbc.driverClassName}")

private String driverClassName;

@Value("${jdbc.url}")

private String url;

@Value("${jdbc.username}")

private String username;

@Value("${jdbc.password}")

private String password;

@RequestMapping(value="/config/getValue")

public Map<String, Object> getConfigFromGit() {

Map<String, Object> result = new HashMap<String, Object>();

result.put("code", "000000");

result.put("msg", "ok");

Map<String, Object> body = new HashMap<String, Object>();

body.put("driverClassName", driverClassName);

body.put("url", url);

body.put("username", username);

body.put("password", password);

result.put("body", body);

return result;

}

}

6、 先启动注册中心,对应的项目为sc-eureka-server;再启动config sever,对应的项目为sc-config-server。然后验证一下config sever是否启动成功

方式一:访问注册中心,可以看到config sever已经注册到注册中心了

方式二:访问配置文件对应的路径看看是否可以获取配置文件,如果能获取到说明启动成功

给大家一一对应一下yml问下的访问方式,这些在config server那篇博文只是大概提了一下:

{[/{name}-{profiles}.yml || /{name}-{profiles}.yaml],methods=[GET]}:

http://127.0.0.1:8100/application-dev.yml

{[/{name}/{profiles:.*[^-].*}],methods=[GET]}:

http://127.0.0.1:8100/application/dev

{[/{name}/{profiles}/{label:.*}],methods=[GET]}: http://127.0.0.1:8100/application/dev/master

{[/{label}/{name}-{profiles}.yml || /{label}/{name}-{profiles}.yaml],methods=[GET]}:

http://127.0.0.1:8100/master/application-dev.yml

7、 启动config client对应的项目sc-config-client

当spring.cloud.config.profile的值为dev时访问http://127.0.0.1:8200/config/getValue

当spring.cloud.config.profile的值为prd时访问http://127.0.0.1:8200/config/getValue

可以看到spring.cloud.config.profile配置不一样时,分配获取到git仓库的application-dev.yml和application-prd.yml配置文件的内容

boot spring 获取请求端口浩_6、如何获取配置中心的配置相关推荐

  1. boot spring 获取请求端口浩_Spring精华问答 | 如何集成Spring Boot?

    Spring框架是一个开源的Java平台,它提供了非常容易,非常迅速地开发健壮的Java应用程序的全面的基础设施支持.今天就让我们一起来看看关于Spring的精华问答吧. 1 Q:如何在自定义端口上运 ...

  2. 获取请求的ip php,如何获取请求服务器的IP

    我A服务器上有a.php,然后用B服务器上的b.php传参给a.php,如何让a.php知道B的IP地址,谢谢 回复讨论(解决方案) $_SERVER['REMOTE_ADDR'] 获取请求方的IP ...

  3. boot spring 打印请求参数_SpringBoot打印请求参数与响应参数

    前言 使用Aop的环绕通知实现 加入依赖 org.projectlombok lombok org.springframework.boot spring-boot-starter-aop 编码 im ...

  4. Spring Boot 集成 Apollo 配置中心,真香、真强大!

    作者:超级小豆丁 来源:http://www.mydlq.club/article/42/ 由于 Apollo 概念比较多,刚开始使用比较复杂,最好先过一遍概念再动手实践尝试使用. 1.背景 随着程序 ...

  5. spring boot pom配置_125 SpringCloud服务配置中心

    1. 为什么需要使用配置中心 (1) 常用的配置管理解决方案有哪些缺点? 硬编码:需要修改代码的话繁琐且风险大: 配置写在properties里面,在集群环境下,需要替换和重启: 写在xml文件中,一 ...

  6. Spring Boot + Spring Cloud 实现权限管理系统 配置中心(Config、Bus)

    技术背景 如今微服务架构盛行,在分布式系统中,项目日益庞大,子项目日益增多,每个项目都散落着各种配置文件,且随着服务的增加而不断增多.此时,往往某一个基础服务信息变更,都会导致一系列服务的更新和重启, ...

  7. spring cloud config 端口总是8888的坑

    spring cloud config中,我们命名在application.yml中配置了端口信息,如: 但是sping cloud config client 启动的时候仍然从8888端口获取配置文 ...

  8. java获取请求ip的方法

    在上篇文章中我们介绍了 java获取请求 ip的方法,那么这篇文章我们就来详细讲解下获取请求 ip的方法.获取请求 ip的方法是基于 HTTP协议的,其原理如下: 1.用 web应用程序,将 web服 ...

  9. spring boot + spring mvc 原理解析

    前言:spring mvc 是当前最为流行的一种java WEB 框架.在还没有spring boot以前,通常搭配tomcat等容器进行web项目的开发.而现在spring全家桶越来越完善.慢慢脱离 ...

最新文章

  1. 华为5720设置静态路由不通_如何设置静态路由与网关?一文了解清楚
  2. 各科老师的语言风格一览,太真实了哈哈哈哈哈哈
  3. 印度不只有开挂火车,还有一开挂的数学家,凭一己之力单刷数学界
  4. 探索GaussDB(DWS)的过程化SQL语言能力
  5. go语言导入git包_使用go module导入本地包的方法教程详解
  6. 利用SpringAOP 实现 日志输出
  7. java中bin和src文件夹_编译src中的所有文件?
  8. 拓端tecdat|R语言时变向量自回归(TV-VAR)模型分析时间序列和可视化
  9. mysql 数据库取前后几秒 几分钟 几小时 几天的语句
  10. android rom root权限,教你刷机包获取ROOT权限的方法
  11. 利用selenium自动刷新网页
  12. html网页中使用mock,前端工具mock的使用 - 造数据模拟网络请求
  13. win10此电脑不见了_Win10如何把控制面板放到桌面上?Win10控制面板不见了解决方法...
  14. excel表格的上传和下载
  15. GitBlit使用说明书
  16. JUnit version 3.8 or later expected
  17. 为什么不受欢迎的书呆子? 《黑客与画家》
  18. 不属于jsp构成元素_下列不属于JSP内置对象的是()。
  19. 2位专家耗时2年打造,西瓜书机器学习公式详解,都在这里了!(文末留言赠书)...
  20. 莫言系统腐化——“一坨”真的好吗?

热门文章

  1. 测试 ClownFish、CYQ、Entity Framework、Moon、MySoft、NHibernate、PDF、XCode数据访问组件性能...
  2. Zookeeper开源客户端框架Curator的简单使用
  3. fullpage的应用
  4. OC高效率52之理解消息转发机制
  5. 文件属性及资源文件的使用
  6. cocos2d-x 3.0游戏实例学习笔记 《跑酷》第四步--地图循环amp;主角加入动作
  7. Linux下如何实现用户的集中管理(NIS服务器的高级配置)
  8. 隐去浏览器中当鼠标移到图片上跳出的工具栏
  9. windows 检查cuda安装_Windows环境CUDA 4.0:安装与验证
  10. arduino小车前进代码_基于Arduino操纵杆扩展板Funduino制作机器人小车