β

《Spring Cloud Config官方文档》快速启动

并发编程网 – ifeve.com 85 阅读

原文链接

第二部分 Spring Cloud 配置

1.3.5.BUILD-SNAPSHOT

Spring Cloud 配置为分布式系统中的外部配置提供服务器和客户端支持。借助Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念与Spring Environment PropertySource 抽象是一样的,所以它们非常适合Spring应用程序,但可以与任何运行在任何语言的应用程序一起使用。当应用程序从开发到测试转移到部署管道时,您可以管理这些环境之间的配置,并确保应用程序具有在迁移时所需运行的所有内容。服务器存储后端的默认实现使用git,因此它可以轻松地支持标记版本的配置环境,并且可以通过广泛的工具来访问管理内容。使用Spring配置添加替代实现并插入它们是很容易的。

4.快速启动

启动服务器:

$ cd spring-cloud-config-server
$ ../mvnw spring-boot:run

服务器是一个Spring Boot应用程序,所以如果你喜欢(主类是 ConfigServerApplication ),你可以从你的IDE运行它 。然后尝试一个客户端:

$ curl localhost:8888/foo/development
{"name":"foo","label":"master","propertySources":[
  {"name":"https://github.com/scratches/config-repo/foo-development.properties","source":{"bar":"spam"}},
  {"name":"https://github.com/scratches/config-repo/foo.properties","source":{"foo":"bar"}}
]}

定位属性资源的默认策略是克隆一个git仓库(at spring.cloud.config.server.git.uri )并使用它来初始化一个mini SpringApplication 。迷你应用程序的 Environment 用于枚举属性源并通过JSON节点发布它们。

HTTP服务具有以下形式的资源:

/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

其中在 SpringApplication 中(即:在一个普通的Spring Boot的应用程序中是作为标准“应用”)“application”是作为 spring.config.name 来注入的,“profile”是一个活动的配置文件(或逗号分隔的属性列表),和“label”是一种可选的git标签(默认为“master”)。

Spring Cloud Config Server从git仓库(必须提供)中为远程客户端提取配置:

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/spring-cloud-samples/config-repo

4.1客户端使用

要在应用程序中使用这些功能,只需将其构建为依赖于 spring-cloud-config-client 的 Spring Boot应用程序(例如,请参阅 config-client 的测试用例或示例应用程序)。添加依赖项的最简便的方法是通过Spring Boot启动器 org.springframework.cloud:spring-cloud-starter-config 。 对于Maven用户还有一个父pom和BOM( spring-cloud-starter-parent ),还有一个针对 Gradle和Spring CLI用户的Spring IO版本管理属性文件。示例Maven配置:

pom.xml 中。

<parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>1.3.5.RELEASE</version>
       <relativePath /> <!-- lookup parent from repository -->
   </parent>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Brixton.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
           <plugin>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-maven-plugin</artifactId>
           </plugin>
    </plugins>
</build>

   <!-- repositories also needed for snapshots and milestones -->

然后你可以创建一个标准的Spring Boot应用程序,就像这个简单的HTTP服务器:

@SpringBootApplication
@RestController
public class Application {

    @RequestMapping("/")
    public String home() {
        return "Hello World!";
    }

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

}

运行时,它将从端口为8888的默认本地配置服务器(如果它正在运行)中选取外部配置。要修改启动行为,你可以在 bootstrap.properties 中改变配置服务器的位置(比如,在 application.properties 中可以对在应用程序上下文的引导阶段进行设置),例如

spring.cloud.config.uri: http://myconfigserver.com

引导属性将在 /env 节点中显示为高优先级属性源,例如

$ curl localhost:8080/env
{
  "profiles":[],
  "configService:https://github.com/spring-cloud-samples/config-repo/bar.properties":{"foo":"bar"},
  "servletContextInitParams":{},
  "systemProperties":{...},
  ...
}

(名称为“configService:<远程存储库的URL> / <文件名>”的属性源包含属性“foo”和属性值“bar”,并且是最高优先级)。

属性源名称中的URL是git仓库中的地址而不是配置服务器URL。

原创文章,转载请注明: 转载自 并发编程网 – ifeve.com 本文链接地址: 《Spring Cloud Config官方文档》快速启动



Favorite Loading 添加本文到我的收藏

Related posts:

  1. 《Spring Cloud Config官方文档》之Spring Cloud Config Server
  2. 《Spring Cloud Config官方文档》之提供替代格式
  3. 《Spring Cloud Config官方文档》之提供纯文本
  4. 《Spring Cloud Config官方文档》翻译邀请
  5. 《Spring Cloud Config官方文档》加密和解密
  6. spring boot集成mongodb最简单版
  7. Spring Boot 整合 Mybatis Annotation 注解的完整 Web 案例
  8. Spring Boot 集成 FreeMarker 详解案例
  9. Spring Boot 整合 Elasticsearch,实现 function score query 权重分查询
  10. 《Spring Cloud Netflix官方文档》翻译邀请
  11. 《Spring Cloud Netflix官方文档》10. 使用 Sidecar支持多语言
  12. 《Spring Cloud Netflix官方文档》路由和过滤器: Zuul
  13. 《Spring Cloud Netflix官方文档》7.声明式 REST 客户端: Feign
  14. 《Spring Cloud Netflix官方文档》2. 服务发现:Eureka服务器
  15. 《Spring Cloud Netflix官方文档》1.服务发现:Eureka客户端
作者:并发编程网 – ifeve.com
让天下没有难学的技术
原文地址:《Spring Cloud Config官方文档》快速启动, 感谢原作者分享。

发表评论