Java-118-SpringCloud-8-config

简介: Spring Cloud 提供了Spring Cloud Config来进行集中式配置管理。Spring Cloud Config分为Server端和Client端:Spring Cloud Config Server是Spring Cloud为指定应用中所有服务提供集中式配置的一个服务,实现集中管理所有应用的配置,避免重复配置。Spring Cloud Config Client可以通过配置获取到Server中的配置信息。

在传统项目中,配置信息一般都在配置文件(application.properties)、操作系统变量、jar命令启动时的环境变量参数,如果需要更改配置就需要重新构建项目再发布。并且如数据库连接信息等安全性也有风险。所以Spring Cloud 提供了Spring Cloud Config来进行集中式配置管理。
Spring Cloud Config分为Server端和Client端:
Spring Cloud Config Server是Spring Cloud为指定应用中所有服务提供集中式配置的一个服务,实现集中管理所有应用的配置,避免重复配置。
Spring Cloud Config Client可以通过配置获取到Server中的配置信息。

    Spring Cloud Config支持git存储配置文件,也支持本地存储。
    下面建立一个本地存储的例子试试。

一、通过Spring Cloud Config Server 获取到本地配置
1.pom.xml

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

  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>


  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-config-server</artifactId>



2.启动类中使用@EnableConfigServer注解启用配置服务
package com.xing.study.cloud.config;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

/**

  • @author rt

*/
@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {

public static void main(String[] args) {
    SpringApplication.run(ConfigServerApplication.class, args);
}

}
3.配置文件application.properties
spring.application.name=config-server
server.port=8889

注册到eureka

eureka.instance.instance-id=config-server
eureka.client.service-url.defaultZone=http://172.23.13.15:8881/eureka/
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true

配置文件存Git

spring.cloud.config.server.git.uri=http://github/xh/config.git

spring.cloud.config.label=master

spring.cloud.config.server.git.search-paths=/**

spring.cloud.config.server.git.username=username

spring.cloud.config.server.git.password=password

配置文件存本地

注意:文件夹要有访问权限

spring.profiles.active=native
spring.cloud.config.server.native.search-locations=D:/temp

     可以注册到eureka来实现配置动态刷新。最好是用git的方式来试试。

4.配置文件指向的D:/temp,在这里放配置文件
图片

    里面就放了一个配置:token=mi

这里的命名要和后面访问时的匹配。
application指应用名称,我们的配置文件名称应按照application-{profile}.yml命名。
profile指环境信息,比如生产环境【prod】、开发环境【dev】、测试环境【test】
label指git分支,比如master
5.访问测试
访问格式:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
结果:
图片

二、通过Spring Cloud Config Client获取到server的配置
1.pom依赖

<!--web 组件 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>


2.配置bootstrap.yml:

使用config server中的配置

spring:
cloud:

config:
  uri: http://localhost:8889 # 如果注册到eureka,可以直接配置Config Server服务名 比如config-server
  label: master
  profile: active
  fail-fast: true

图片

3.输出配置
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**

  • @author rt

*/
@RestController
public class TokenController {

@Value("${token}")
private String token;

@RequestMapping("/token")
public String token() {
    return token;
}

}
4.公司有网控,上不去git,所以我没有使用git来测试。。。了解了就是啦

    配置和应用进行隔离,提升了安全性,也避免了重复配置。

END

目录
相关文章
|
5月前
|
XML 前端开发 Java
SpringMVC中那些Java Config
SpringMVC中那些Java Config
79 0
|
10月前
|
Java
SpringBoot报错:Caused by: org.yaml.snakeyaml.error.YAMLException: java.nio.charset.Malforme
SpringBoot报错:Caused by: org.yaml.snakeyaml.error.YAMLException: java.nio.charset.Malforme
690 0
|
12月前
|
Java
Java:Springboot的service循环依赖问题
Java:Springboot的service循环依赖问题
138 0
|
存储 Java 数据库连接
Java-118-SpringCloud-8-config
在传统项目中,配置信息一般都在配置文件(application.properties)、操作系统变量、jar命令启动时的环境变量参数,如果需要更改配置就需要重新构建项目再发布。并且如数据库连接信息等安全性也有风险。所以Spring Cloud 提供了Spring Cloud Config来进行集中式配置管理。
57 0
|
负载均衡 Java Spring
Java--SpringCloud-7-Feign
Feign是一个声明式客户端,可以实现服务间的相互调用。 今天代码实现一下Spring Cloud项目中,使用Feign来实现类似于昨天Ribbon调用其他服务接口的效果。
102 0
Java--SpringCloud-7-Feign
|
Java
Java--SpringBoot-32-SpringBoot Admin
今天来将client注册到Server服务,并在管理页面上查看各种信息。Client
71 0
Java--SpringBoot-32-SpringBoot Admin
|
监控 数据可视化 Java
Java--SpringBoot-31-SpringBoot Admin
Spring Boot中的监控和管理软件Spring Boot Admin.该软件能够将 Actuator 中的信息进行界面化的展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能。
66 0
Java--SpringBoot-31-SpringBoot Admin
|
XML JSON Java
Java--SpringBoot-29-WebService
在SpringBoot中发布WebService。
114 0
Java--SpringBoot-29-WebService
|
Java
Java-SpringBoot-07-修改应用context-path及port
SpringBoot应用中可以配置应用上下文路径及访问的端口。 默认的情况下,SpringBoot应用的应用上下文路径为空,访问端口默认是8080。
188 0
Java-SpringBoot-07-修改应用context-path及port