Spring Cloud实践之集中配置Spring-config

将一个系统中各个应用的配置文件集中起来,方便管理。

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

@SpringBootApplication
@EnableConfigServer
public class ConfigApplication {

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

如上,对一个spring boot应用加上@EnableConfigServer就可以将其变成一个集中配置服务。

build.gradle文件:

buildscript {
    ext {
        springBootVersion = ‘1.4.2.RELEASE‘
    }
    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}
// Apply the java-library plugin to add support for Java Library
apply plugin: ‘java-library‘
apply plugin: ‘java‘
apply plugin: ‘org.springframework.boot‘

version = ‘0.0.1-SNAPSHOT‘
sourceCompatibility = 1.8
// In this section you declare where to find the dependencies of your project
repositories {
    // Use jcenter for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
    mavenCentral()
    maven { url  "http://dl.bintray.com/oembedler/maven" }
    maven { url "https://repo.spring.io/libs-release" }
    maven { url "http://10.100.122.249:8881/nexus/content/groups/public/" }
}

dependencyManagement {
  imports {
    //mavenBom ‘org.springframework.cloud:spring-cloud-netflix:1.2.0.M1‘
    mavenBom ‘org.springframework.cloud:spring-cloud-dependencies:Camden.SR2‘
  }
}

dependencies {
    // Use JUnit test framework
    testImplementation ‘junit:junit:4.12‘
    // https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-config-server
    compile("org.springframework.cloud:spring-cloud-starter-parent:Camden.SR2")
    compile("org.springframework.boot:spring-boot-starter-security")
      compile("org.springframework.cloud:spring-cloud-config-server")
    compile("org.springframework.boot:spring-boot-starter-web")
    compile("org.springframework.boot:spring-boot-starter-actuator")
}

config server自己的配置文件如下:

spring:
  cloud:
    config:
      server:
        native:
          searchLocations: classpath:/shared
  profiles:
     active: native

server:
  port: 8888

security:
  user:
    password: root
native代表将各个接入应用的配置文件放在config server的本地目录,这里放在classpath:/shared ;并对接入应用开启验证,用户名user密码root; 启动config server,验证http://localhost:8888/demo/application.property (这里假设在shared目录放入了demo应用的配置文件demo.property)

再来看看接入应用如何使用这个config server在demo应用中:
//在dependencies中加入
compile("org.springframework.cloud:spring-cloud-starter-parent:Camden.SR2")
compile("org.springframework.cloud:spring-cloud-starter-config")
//在build.gradle根下加入如下依赖项
dependencyManagement {
imports {
  mavenBom ‘org.springframework.cloud:spring-cloud-dependencies:Camden.SR2‘
  }
}

* 将项目resource下application.properties文件复制到server-config resource下的shared文件夹中
并重命名为项目名.properties,如demo项目,命名为demo.properties
* 清空application.properties内容
3. 在resource下新建bootstrap.yml文件(以demo项目举例)

spring:
  application:
    name: demo
  profiles:
    active: default
  cloud:
    config:
      uri: http://localhost:8888/
      name: demo
      fail-fast: true
      password: root
      username: user

原文地址:https://www.cnblogs.com/lyhero11/p/8877203.html

时间: 2024-10-06 00:22:26

Spring Cloud实践之集中配置Spring-config的相关文章

spring cloud 注册中心 instance_id 配置

spring cloud 注册中心 instance_id 配置 consul 注册发现中心 instance_id 配置 ip + 端口 一般网上推荐的配置都是 ${spring.application.name}:${vcap.application.instance_id:${spring.application.instance_id:${random.value}}} ${random.value} 每次再重启后都会生成一个随机数 会造成每次重启后会在 consul 上重新注册注册上一

Spring Cloud微服务集成配置中心

1. 搭建Spring Cloud Config配置中心(见上一篇博客) 2. 创建微服务项目bounter-simon-app,pom文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins

Spring Cloud:多环境配置、注册中心安全认证、容器宿主机IP注册

记录一下搭建 Spring Cloud 过程中踩过的一些坑.写这篇随笔时候不知道为什么想到了看过的一个短片<断崖>,看的时候真的感受到了女主的绝望和无助.感觉自己就像女主一样,我在自己技术水平的坑里努力的爬着,好的是我爬出来了,坏的是外面还有一个更大的坑!!!人生路漫漫,且爬且珍惜! Spring 版本 Spring Boot:2.0.0.RELEASE Spring Cloud:Finchley.SR2 多环境配置 多配置的切换在开发中真是很常用,能有效提高效率.一些成熟的框架基本都有关于配

spring cloud 使用spring cloud bus自动刷新配置

Spring Cloud Bus提供了批量刷新配置的机制,它使用轻量级的消息代理(例如RabbitMQ.Kafka等)连接分布式系统的节点,这样就可以通过Spring Cloud Bus广播配置的变化或者其他的管理指令.使用Spring Cloud Bus后的架构如图9-2所示. 图9-2 使用Spring Cloud Bus的架构图 由图可知,微服务A的所有实例通过消息总线连接到了一起,每个实例都会订阅配置更新事件.当其中一个微服务节点的/bus/refresh端点被请求时,该实例就会向消息总

spring cloud深入学习(七)-----配置中心git示例

随着线上项目变的日益庞大,每个项目都散落着各种配置文件,如果采用分布式的开发模式,需要的配置文件随着服务增加而不断增多.某一个基础服务信息变更,都会引起一系列的更新和重启,运维苦不堪言也容易出错.配置中心便是解决此类问题的灵丹妙药. 市面上开源的配置中心有很多,BAT每家都出过,360的QConf.淘宝的diamond.百度的disconf都是解决这类问题.国外也有很多开源的配置中心Apache的Apache Commons Configuration.owner.cfg4j等等.这些开源的软件

spring cloud深入学习(八)-----配置中心svn示例和refresh

svn版本 同样先示例server端的代码,基本步骤一样. 1.添加依赖 <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <groupId>org

Spring Cloud学习(六):Config配置管理

1. Config介绍 在分布式中我们会有很多服务,每个服务都有配置文件,如果修改了某个在多个服务中用到的配置项,那么就需要去各个服务中更改,非常麻烦. 而且在开发,测试,生产三个场景用到的配置也是不同的,为了方便这些配置的管理,就用到了配置中心.配置中心分为了服务端和客户端,服务端主要是读取git/svn仓库中的配置项,然后客户端会去从服务端获取配置. 2. 准备工作 一个注册中心,一个Config Server,一个Config Client,不同环境的配置文件 config-dev.pro

【Spring Cloud学习之五】配置中心

环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 Spring Cloud 1.2 一.什么是配置中心在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库(或者SVN仓库)中.在spring cloud config 组件中,分两个角色,一是config

Spring Cloud 微服务公共配置处理

Spring Cloud Config Server提供了微服务获取配置的功能,这些配置文件(application.yml或者application.properties)通常维护在git或者数据库中,而且支持通过RefreshScope动态刷新,使用起来还是比较灵活的.但是当微服务越来越多时,会遇到下面几个问题: 配置文件的敏感数如数据库地址和账号信息,据呈现在每个配置文件中,替换起来需要一个个配置文件进行修改. 各个微服务配置文件存在很多冗余配置(如Eureka,Feign),一旦这些部分