提交 7bbd09db 编写于 作者: 茶陵後's avatar 茶陵後 👍

#13 Spring boot 推送

上级 b377572a
......@@ -193,6 +193,48 @@ module.exports = {
initialOpenGroupIndex: 0 // 可选的, 默认值是 0
}
],
'/en/spring-data/': [
{
title: 'Spring Data',
sidebarDepth: 2,
collapsable: false,
children: [
"/en/spring-data/spring-data.md"
],
initialOpenGroupIndex: 0 // 可选的, 默认值是 0
}
],
'/en/spring-cloud/': [
{
title: 'Spring Cloud',
sidebarDepth: 2,
collapsable: false,
children: [
"/en/spring-cloud/legal.md",
"/en/spring-cloud/documentation-overview.md",
"/en/spring-cloud/spring-cloud-build.md",
"/en/spring-cloud/spring-cloud-bus.md",
"/en/spring-cloud/spring-cloud-circuitbreaker.md",
"/en/spring-cloud/spring-cloud-cli.md",
"/en/spring-cloud/spring-cloud-cloudfoundry.md",
"/en/spring-cloud/spring-cloud-commons.md",
"/en/spring-cloud/spring-cloud-config.md",
"/en/spring-cloud/spring-cloud-consul.md",
"/en/spring-cloud/spring-cloud-contract.md",
"/en/spring-cloud/spring-cloud-function.md",
"/en/spring-cloud/spring-cloud-gateway.md",
"/en/spring-cloud/spring-cloud-kubernetes.md",
"/en/spring-cloud/spring-cloud-netflix.md",
"/en/spring-cloud/spring-cloud-openfeign.md",
"/en/spring-cloud/spring-cloud-sleuth.md",
"/en/spring-cloud/spring-cloud-stream.md",
"/en/spring-cloud/spring-cloud-task.md",
"/en/spring-cloud/spring-cloud-vault.md",
"/en/spring-cloud/spring-cloud-zookeeper.md",
],
initialOpenGroupIndex: 0 // 可选的, 默认值是 0
}
],
// fallback
'/en/':
......@@ -352,6 +394,48 @@ module.exports = {
initialOpenGroupIndex: 0 // 可选的, 默认值是 0
}
],
'/spring-data/': [
{
title: 'Spring Data 文档',
sidebarDepth: 2,
collapsable: false,
children: [
"/spring-data/spring-data.md"
],
initialOpenGroupIndex: 0 // 可选的, 默认值是 0
}
],
'/spring-cloud/': [
{
title: 'Spring Cloud 文档',
sidebarDepth: 2,
collapsable: false,
children: [
"/spring-cloud/legal.md",
"/spring-cloud/documentation-overview.md",
"/spring-cloud/spring-cloud-build.md",
"/spring-cloud/spring-cloud-bus.md",
"/spring-cloud/spring-cloud-circuitbreaker.md",
"/spring-cloud/spring-cloud-cli.md",
"/spring-cloud/spring-cloud-cloudfoundry.md",
"/spring-cloud/spring-cloud-commons.md",
"/spring-cloud/spring-cloud-config.md",
"/spring-cloud/spring-cloud-consul.md",
"/spring-cloud/spring-cloud-contract.md",
"/spring-cloud/spring-cloud-function.md",
"/spring-cloud/spring-cloud-gateway.md",
"/spring-cloud/spring-cloud-kubernetes.md",
"/spring-cloud/spring-cloud-netflix.md",
"/spring-cloud/spring-cloud-openfeign.md",
"/spring-cloud/spring-cloud-sleuth.md",
"/spring-cloud/spring-cloud-stream.md",
"/spring-cloud/spring-cloud-task.md",
"/spring-cloud/spring-cloud-vault.md",
"/spring-cloud/spring-cloud-zookeeper.md"
],
initialOpenGroupIndex: 0 // 可选的, 默认值是 0
}
],
// fallback
'/':
[{
......
# Spring Cloud Documentation
Table of Contents
- [Spring Cloud Documentation](#spring-cloud-documentation)
- [[1. About the Documentation](#documentation-about)](#1-about-the-documentation)
- [[2. Getting Help](#documentation-getting-help)](#2-getting-help)
This section provides a brief overview of Spring Cloud reference documentation. It serves
as a map for the rest of the document.
......
# Spring Cloud Build
Table of Contents
- [Spring Cloud Build](#spring-cloud-build)
- [Building and Deploying](#building-and-deploying)
- [Contributing](#contributing)
- [Sign the Contributor License Agreement](#sign-the-contributor-license-agreement)
- [Code of Conduct](#code-of-conduct)
- [Code Conventions and Housekeeping](#code-conventions-and-housekeeping)
- [Checkstyle](#checkstyle)
- [Checkstyle configuration](#checkstyle-configuration)
- [IDE setup](#ide-setup)
- [Intellij IDEA](#intellij-idea)
- [Duplicate Finder](#duplicate-finder)
- [Duplicate Finder configuration](#duplicate-finder-configuration)
- [Flattening the POMs](#flattening-the-poms)
- [Reusing the documentation](#reusing-the-documentation)
- [Updating the guides](#updating-the-guides)
* [Flattening the POMs](#_flattening_the_poms)
* [Reusing the documentation](#_reusing_the_documentation)
* [Updating the guides](#_updating_the_guides)
[![Build](https://github.com/spring-cloud/spring-cloud-build/workflows/Build/badge.svg?branch=main&style=svg)](https://github.com/spring-cloud/spring-cloud-build/actions)
Spring Cloud Build is a common utility project for Spring Cloud
to use for plugin and dependency management.
......
# Spring Cloud Bus
Table of Contents
* [1. Quick Start](#quick-start)
* [2. Bus Endpoints](#bus-endpoints)
* [2.1. Bus Refresh Endpoint](#bus-refresh-endpoint)
* [2.2. Bus Env Endpoint](#bus-env-endpoint)
- [Spring Cloud Bus](#spring-cloud-bus)
- [[1. Quick Start](#quick-start)](#1-quick-start)
- [[2. Bus Endpoints](#bus-endpoints)](#2-bus-endpoints)
- [[2.1. Bus Refresh Endpoint](#bus-refresh-endpoint)](#21-bus-refresh-endpoint)
- [[2.2. Bus Env Endpoint](#bus-env-endpoint)](#22-bus-env-endpoint)
- [[3. Addressing an Instance](#addressing-an-instance)](#3-addressing-an-instance)
- [[4. Addressing All Instances of a Service](#addressing-all-instances-of-a-service)](#4-addressing-all-instances-of-a-service)
- [[5. Service ID Must Be Unique](#service-id-must-be-unique)](#5-service-id-must-be-unique)
- [[6. Customizing the Message Broker](#customizing-the-message-broker)](#6-customizing-the-message-broker)
- [[7. Tracing Bus Events](#tracing-bus-events)](#7-tracing-bus-events)
- [[8. Broadcasting Your Own Events](#broadcasting-your-own-events)](#8-broadcasting-your-own-events)
- [[8.1. Registering events in custom packages](#registering-events-in-custom-packages)](#81-registering-events-in-custom-packages)
- [[9. Configuration properties](#configuration-properties)](#9-configuration-properties)
* [9. Configuration properties](#configuration-properties)
Spring Cloud Bus links the nodes of a distributed system with a lightweight message
broker. This broker can then be used to broadcast state changes (such as configuration
changes) or other management instructions. A key idea is that the bus is like a
......
# Spring Cloud Circuit Breaker
Table of Contents
* [1. Usage Documentation](#usage-documentation)
* [1.1. Configuring Resilience4J Circuit Breakers](#configuring-resilience4j-circuit-breakers)
* [1.1.1. Starters](#starters)
* [1.1.2. Auto-Configuration](#auto-configuration)
* [1.1.3. Default Configuration](#default-configuration)
* [Reactive Example](#reactive-example)
* [1.1.4. Specific Circuit Breaker Configuration](#specific-circuit-breaker-configuration)
* [Reactive Example](#reactive-example-2)
* [1.1.5. Circuit Breaker Properties Configuration](#circuit-breaker-properties-configuration)
* [1.1.6. Bulkhead pattern supporting](#bulkhead-pattern-supporting)
* [1.1.7. Specific Bulkhead Configuration](#specific-bulkhead-configuration)
* [Bulkhead Example](#bulkhead-example)
* [Thread Pool Bulkhead Example](#thread-pool-bulkhead-example)
* [1.1.8. Bulkhead Properties Configuration](#bulkhead-properties-configuration)
* [1.1.9. Collecting Metrics](#collecting-metrics)
* [1.2. Configuring Spring Retry Circuit Breakers](#configuring-spring-retry-circuit-breakers)
* [1.2.1. Default Configuration](#default-configuration-2)
* [1.2.2. Specific Circuit Breaker Configuration](#specific-circuit-breaker-configuration-2)
* [2. Building](#building)
* [2.1. Basic Compile and Test](#basic-compile-and-test)
* [2.2. Documentation](#documentation)
* [2.3. Working with the code](#working-with-the-code)
* [2.3.1. Activate the Spring Maven profile](#activate-the-spring-maven-profile)
* [2.3.2. Importing into eclipse with m2eclipse](#importing-into-eclipse-with-m2eclipse)
* [2.3.3. Importing into eclipse without m2eclipse](#importing-into-eclipse-without-m2eclipse)
* [3. Contributing](#contributing)
* [3.1. Sign the Contributor License Agreement](#sign-the-contributor-license-agreement)
* [3.2. Code of Conduct](#code-of-conduct)
* [3.3. Code Conventions and Housekeeping](#code-conventions-and-housekeeping)
* [3.4. Checkstyle](#checkstyle)
* [3.4.1. Checkstyle configuration](#checkstyle-configuration)
* [3.5. IDE setup](#ide-setup)
* [3.5.1. Intellij IDEA](#intellij-idea)
* [3.6. Duplicate Finder](#duplicate-finder)
* [3.6.1. Duplicate Finder configuration](#duplicate-finder-configuration)
**2.1.1**
## [](#usage-documentation)[1. Usage Documentation](#usage-documentation)
......
# Spring Boot Cloud CLI
Table of Contents
- [Spring Boot Cloud CLI](#spring-boot-cloud-cli)
- [Installation](#installation)
- [Running Spring Cloud Services in Development](#running-spring-cloud-services-in-development)
- [Adding Additional Applications](#adding-additional-applications)
- [Writing Groovy Scripts and Running Applications](#writing-groovy-scripts-and-running-applications)
- [Encryption and Decryption](#encryption-and-decryption)
* [Writing Groovy Scripts and Running Applications](#_writing_groovy_scripts_and_running_applications)
* [Encryption and Decryption](#_encryption_and_decryption)
Spring Boot CLI provides [Spring
Boot](https://projects.spring.io/spring-boot) command line features for [Spring
Cloud](https://github.com/spring-cloud). You can write Groovy scripts to run Spring Cloud component
......
# Spring Cloud for Cloud Foundry
Table of Contents
- [Spring Cloud for Cloud Foundry](#spring-cloud-for-cloud-foundry)
- [[1. Discovery](#discovery)](#1-discovery)
- [[2. Single Sign On](#single-sign-on)](#2-single-sign-on)
- [[3. Configuration](#configuration)](#3-configuration)
Spring Cloud for Cloudfoundry makes it easy to run[Spring Cloud](https://github.com/spring-cloud) apps in[Cloud Foundry](https://github.com/cloudfoundry) (the Platform as a
Service). Cloud Foundry has the notion of a "service", which is
middlware that you "bind" to an app, essentially providing it with an
......
# Cloud Native Applications
Table of Contents
* [1. Spring Cloud Context: Application Context Services](#spring-cloud-context-application-context-services)
* [1.1. The Bootstrap Application Context](#the-bootstrap-application-context)
* [1.2. Application Context Hierarchies](#application-context-hierarchies)
* [1.3. Changing the Location of Bootstrap Properties](#customizing-bootstrap-properties)
* [1.4. Overriding the Values of Remote Properties](#overriding-bootstrap-properties)
* [1.5. Customizing the Bootstrap Configuration](#customizing-the-bootstrap-configuration)
* [1.6. Customizing the Bootstrap Property Sources](#customizing-bootstrap-property-sources)
* [1.7. Logging Configuration](#logging-configuration)
* [1.8. Environment Changes](#environment-changes)
* [1.9. Refresh Scope](#refresh-scope)
* [1.10. Encryption and Decryption](#encryption-and-decryption)
* [1.11. Endpoints](#endpoints)
* [2. Spring Cloud Commons: Common Abstractions](#spring-cloud-commons-common-abstractions)
* [2.1. The `@EnableDiscoveryClient` Annotation](#discovery-client)
* [2.1.1. Health Indicators](#health-indicators)
* [DiscoveryClientHealthIndicator](#discoveryclienthealthindicator)
* [DiscoveryCompositeHealthContributor](#discoverycompositehealthcontributor)
* [2.1.2. Ordering `DiscoveryClient` instances](#ordering-discoveryclient-instances)
* [2.1.3. SimpleDiscoveryClient](#simplediscoveryclient)
* [2.2. ServiceRegistry](#serviceregistry)
* [2.2.1. ServiceRegistry Auto-Registration](#serviceregistry-auto-registration)
* [ServiceRegistry Auto-Registration Events](#serviceregistry-auto-registration-events)
* [2.2.2. Service Registry Actuator Endpoint](#service-registry-actuator-endpoint)
* [2.3. Spring RestTemplate as a Load Balancer Client](#rest-template-loadbalancer-client)
* [2.4. Spring WebClient as a Load Balancer Client](#webclinet-loadbalancer-client)
* [2.4.1. Retrying Failed Requests](#retrying-failed-requests)
* [2.5. Multiple `RestTemplate` Objects](#multiple-resttemplate-objects)
* [2.6. Multiple WebClient Objects](#multiple-webclient-objects)
* [2.7. Spring WebFlux `WebClient` as a Load Balancer Client](#loadbalanced-webclient)
* [2.7.1. Spring WebFlux `WebClient` with `ReactorLoadBalancerExchangeFilterFunction`](#webflux-with-reactive-loadbalancer)
* [2.7.2. Spring WebFlux `WebClient` with a Non-reactive Load Balancer Client](#load-balancer-exchange-filter-function)
* [2.8. Ignore Network Interfaces](#ignore-network-interfaces)
* [2.9. HTTP Client Factories](#http-clients)
* [2.10. Enabled Features](#enabled-features)
* [2.10.1. Feature types](#feature-types)
* [2.10.2. Declaring features](#declaring-features)
* [2.11. Spring Cloud Compatibility Verification](#spring-cloud-compatibility-verification)
* [3. Spring Cloud LoadBalancer](#spring-cloud-loadbalancer)
* [3.1. Switching between the load-balancing algorithms](#switching-between-the-load-balancing-algorithms)
* [3.2. Spring Cloud LoadBalancer integrations](#spring-cloud-loadbalancer-integrations)
* [3.3. Spring Cloud LoadBalancer Caching](#loadbalancer-caching)
* [3.3.1. Caffeine-backed LoadBalancer Cache Implementation](#caffeine-backed-loadbalancer-cache-implementation)
* [3.3.2. Default LoadBalancer Cache Implementation](#default-loadbalancer-cache-implementation)
* [3.3.3. LoadBalancer Cache Configuration](#loadbalancer-cache-configuration)
* [3.4. Zone-Based Load-Balancing](#zone-based-load-balancing)
* [3.5. Instance Health-Check for LoadBalancer](#instance-health-check-for-loadbalancer)
* [3.6. Same instance preference for LoadBalancer](#same-instance-preference-for-loadbalancer)
* [3.7. Request-based Sticky Session for LoadBalancer](#request-based-sticky-session-for-loadbalancer)
* [3.8. Spring Cloud LoadBalancer Hints](#spring-cloud-loadbalancer-hints)
* [3.9. Hint-Based Load-Balancing](#hints-based-loadbalancing)
* [3.10. Transform the load-balanced HTTP request](#transform-the-load-balanced-http-request)
* [3.11. Spring Cloud LoadBalancer Starter](#spring-cloud-loadbalancer-starter)
* [3.12. Passing Your Own Spring Cloud LoadBalancer Configuration](#custom-loadbalancer-configuration)
* [3.13. Spring Cloud LoadBalancer Lifecycle](#loadbalancer-lifecycle)
* [3.14. Spring Cloud LoadBalancer Statistics](#loadbalancer-micrometer-stats-lifecycle)
* [3.15. Configuring Individual LoadBalancerClients](#configuring-individual-loadbalancerclients)
* [4. Spring Cloud Circuit Breaker](#spring-cloud-circuit-breaker)
* [4.1. Introduction](#introduction)
* [4.1.1. Supported Implementations](#supported-implementations)
* [4.2. Core Concepts](#core-concepts)
* [4.2.1. Circuit Breakers In Reactive Code](#circuit-breakers-in-reactive-code)
* [4.3. Configuration](#configuration)
* [5. CachedRandomPropertySource](#cachedrandompropertysource)
* [6. Security](#spring-cloud-security)
* [6.1. Single Sign On](#spring-cloud-security-single-sign-on)
* [6.1.1. Client Token Relay](#spring-cloud-security-client-token-relay)
* [6.1.2. Resource Server Token Relay](#spring-cloud-security-resource-server-token-relay)
* [7. Configuration Properties](#configuration-properties)
[Cloud Native](https://pivotal.io/platform-as-a-service/migrating-to-cloud-native-application-architectures-ebook) is a style of application development that encourages easy adoption of best practices in the areas of continuous delivery and value-driven development.
A related discipline is that of building [12-factor Applications](https://12factor.net/), in which development practices are aligned with delivery and operations goals — for instance, by using declarative programming and management and monitoring.
Spring Cloud facilitates these styles of development in a number of specific ways.
......
# Spring Cloud Config
Table of Contents
* [Quick Start](#_quick_start)
* [Client Side Usage](#_client_side_usage)
* [Spring Cloud Config Server](#_spring_cloud_config_server)
* [Environment Repository](#_environment_repository)
* [Health Indicator](#_health_indicator)
* [Security](#_security)
* [Actuator and Security](#_actuator_and_security)
* [Encryption and Decryption](#_encryption_and_decryption)
* [Key Management](#_key_management)
* [Creating a Key Store for Testing](#_creating_a_key_store_for_testing)
* [Using Multiple Keys and Key Rotation](#_using_multiple_keys_and_key_rotation)
* [Serving Encrypted Properties](#_serving_encrypted_properties)
* [Serving Alternative Formats](#_serving_alternative_formats)
* [Serving Plain Text](#_serving_plain_text)
* [Git, SVN, and Native Backends](#spring-cloud-config-serving-plain-text-git-svn-native-backends)
* [AWS S3](#spring-cloud-config-serving-plain-text-aws-s3)
* [Decrypting Plain Text](#_decrypting_plain_text)
* [Embedding the Config Server](#_embedding_the_config_server)
* [Push Notifications and Spring Cloud Bus](#_push_notifications_and_spring_cloud_bus)
* [Spring Cloud Config Client](#_spring_cloud_config_client)
* [Spring Boot Config Data Import](#config-data-import)
* [Config First Bootstrap](#config-first-bootstrap)
* [Config Client Fail Fast](#config-client-fail-fast)
* [Config Client Retry](#config-client-retry)
* [Config Client Retry with spring.config.import](#_config_client_retry_with_spring_config_import)
* [Locating Remote Configuration Resources](#_locating_remote_configuration_resources)
* [Specifying Multiple Urls for the Config Server](#_specifying_multiple_urls_for_the_config_server)
* [Configuring Timeouts](#_configuring_timeouts)
* [Security](#_security_2)
* [Nested Keys In Vault](#_nested_keys_in_vault)
**3.1.1**
Spring Cloud Config provides server-side and client-side support for externalized configuration in a distributed system. With the Config Server, you have a central place to manage external properties for applications across all environments.
......
# Spring Cloud Consul
Table of Contents
* [1. Quick Start](#quick-start)
* [1.1. Discovery Client Usage](#discovery-client-usage)
* [1.2. Distributed Configuration Usage](#distributed-configuration-usage)
* [2. Install Consul](#spring-cloud-consul-install)
* [3. Consul Agent](#spring-cloud-consul-agent)
* [4. Service Discovery with Consul](#spring-cloud-consul-discovery)
* [4.1. How to activate](#how-to-activate)
* [4.2. Registering with Consul](#registering-with-consul)
* [4.2.1. Registering Management as a Separate Service](#registering-management-as-a-separate-service)
* [4.2.2. HTTP Health Check](#http-health-check)
* [Applying Headers](#applying-headers)
* [4.2.3. Actuator Health Indicator(s)](#actuator-health-indicators)
* [DiscoveryClientHealthIndicator](#discoveryclienthealthindicator)
* [ConsulHealthIndicator](#consulhealthindicator)
* [4.2.4. Metadata](#metadata)
* [Generated Metadata](#generated-metadata)
* [4.2.5. Making the Consul Instance ID Unique](#making-the-consul-instance-id-unique)
* [4.3. Looking up services](#looking-up-services)
* [4.3.1. Using Load-balancer](#using-load-balancer)
* [4.3.2. Using the DiscoveryClient](#using-the-discoveryclient)
* [4.4. Consul Catalog Watch](#consul-catalog-watch)
* [5. Distributed Configuration with Consul](#spring-cloud-consul-config)
* [5.1. How to activate](#how-to-activate-2)
* [5.2. Spring Boot Config Data Import](#config-data-import)
* [5.3. Customizing](#customizing)
* [5.4. Config Watch](#spring-cloud-consul-config-watch)
* [5.5. YAML or Properties with Config](#spring-cloud-consul-config-format)
* [5.6. git2consul with Config](#spring-cloud-consul-config-git2consul)
* [5.7. Fail Fast](#spring-cloud-consul-failfast)
* [6. Consul Retry](#spring-cloud-consul-retry)
* [7. Spring Cloud Bus with Consul](#spring-cloud-consul-bus)
* [7.1. How to activate](#how-to-activate-3)
* [8. Circuit Breaker with Hystrix](#spring-cloud-consul-hystrix)
* [9. Hystrix metrics aggregation with Turbine and Consul](#spring-cloud-consul-turbine)
* [10. Configuration Properties](#configuration-properties)
**3.1.0**
This project provides Consul integrations for Spring Boot apps through autoconfiguration
......
# Spring Cloud Gateway
Table of Contents
* [1. How to Include Spring Cloud Gateway](#gateway-starter)
* [2. Glossary](#glossary)
* [3. How It Works](#gateway-how-it-works)
* [4. Configuring Route Predicate Factories and Gateway Filter Factories](#configuring-route-predicate-factories-and-gateway-filter-factories)
* [4.1. Shortcut Configuration](#shortcut-configuration)
* [4.2. Fully Expanded Arguments](#fully-expanded-arguments)
* [5. Route Predicate Factories](#gateway-request-predicates-factories)
* [5.1. The After Route Predicate Factory](#the-after-route-predicate-factory)
* [5.2. The Before Route Predicate Factory](#the-before-route-predicate-factory)
* [5.3. The Between Route Predicate Factory](#the-between-route-predicate-factory)
* [5.4. The Cookie Route Predicate Factory](#the-cookie-route-predicate-factory)
* [5.5. The Header Route Predicate Factory](#the-header-route-predicate-factory)
* [5.6. The Host Route Predicate Factory](#the-host-route-predicate-factory)
* [5.7. The Method Route Predicate Factory](#the-method-route-predicate-factory)
* [5.8. The Path Route Predicate Factory](#the-path-route-predicate-factory)
* [5.9. The Query Route Predicate Factory](#the-query-route-predicate-factory)
* [5.10. The RemoteAddr Route Predicate Factory](#the-remoteaddr-route-predicate-factory)
* [5.10.1. Modifying the Way Remote Addresses Are Resolved](#modifying-the-way-remote-addresses-are-resolved)
* [5.11. The Weight Route Predicate Factory](#the-weight-route-predicate-factory)
* [5.12. The XForwarded Remote Addr Route Predicate Factory](#the-xforwarded-remote-addr-route-predicate-factory)
* [6. `GatewayFilter` Factories](#gatewayfilter-factories)
* [6.1. The `AddRequestHeader` `GatewayFilter` Factory](#the-addrequestheader-gatewayfilter-factory)
* [6.2. The `AddRequestParameter` `GatewayFilter` Factory](#the-addrequestparameter-gatewayfilter-factory)
* [6.3. The `AddResponseHeader` `GatewayFilter` Factory](#the-addresponseheader-gatewayfilter-factory)
* [6.4. The `DedupeResponseHeader` `GatewayFilter` Factory](#the-deduperesponseheader-gatewayfilter-factory)
* [6.5. Spring Cloud CircuitBreaker GatewayFilter Factory](#spring-cloud-circuitbreaker-filter-factory)
* [6.5.1. Tripping The Circuit Breaker On Status Codes](#circuit-breaker-status-codes)
* [6.6. The `FallbackHeaders` `GatewayFilter` Factory](#fallback-headers)
* [6.7. The `MapRequestHeader` `GatewayFilter` Factory](#the-maprequestheader-gatewayfilter-factory)
* [6.8. The `PrefixPath` `GatewayFilter` Factory](#the-prefixpath-gatewayfilter-factory)
* [6.9. The `PreserveHostHeader` `GatewayFilter` Factory](#the-preservehostheader-gatewayfilter-factory)
* [6.10. The `RequestRateLimiter` `GatewayFilter` Factory](#the-requestratelimiter-gatewayfilter-factory)
* [6.10.1. The Redis `RateLimiter`](#the-redis-ratelimiter)
* [6.11. The `RedirectTo` `GatewayFilter` Factory](#the-redirectto-gatewayfilter-factory)
* [6.12. The `RemoveRequestHeader` GatewayFilter Factory](#the-removerequestheader-gatewayfilter-factory)
* [6.13. `RemoveResponseHeader` `GatewayFilter` Factory](#removeresponseheader-gatewayfilter-factory)
* [6.14. The `RemoveRequestParameter` `GatewayFilter` Factory](#the-removerequestparameter-gatewayfilter-factory)
* [6.15. The `RewritePath` `GatewayFilter` Factory](#the-rewritepath-gatewayfilter-factory)
* [6.16. `RewriteLocationResponseHeader` `GatewayFilter` Factory](#rewritelocationresponseheader-gatewayfilter-factory)
* [6.17. The `RewriteResponseHeader` `GatewayFilter` Factory](#the-rewriteresponseheader-gatewayfilter-factory)
* [6.18. The `SaveSession` `GatewayFilter` Factory](#the-savesession-gatewayfilter-factory)
* [6.19. The `SecureHeaders` `GatewayFilter` Factory](#the-secureheaders-gatewayfilter-factory)
* [6.20. The `SetPath` `GatewayFilter` Factory](#the-setpath-gatewayfilter-factory)
* [6.21. The `SetRequestHeader` `GatewayFilter` Factory](#the-setrequestheader-gatewayfilter-factory)
* [6.22. The `SetResponseHeader` `GatewayFilter` Factory](#the-setresponseheader-gatewayfilter-factory)
* [6.23. The `SetStatus` `GatewayFilter` Factory](#the-setstatus-gatewayfilter-factory)
* [6.24. The `StripPrefix` `GatewayFilter` Factory](#the-stripprefix-gatewayfilter-factory)
* [6.25. The Retry `GatewayFilter` Factory](#the-retry-gatewayfilter-factory)
* [6.26. The `RequestSize` `GatewayFilter` Factory](#the-requestsize-gatewayfilter-factory)
* [6.27. The `SetRequestHostHeader` `GatewayFilter` Factory](#the-setrequesthostheader-gatewayfilter-factory)
* [6.28. Modify a Request Body `GatewayFilter` Factory](#modify-a-request-body-gatewayfilter-factory)
* [6.29. Modify a Response Body `GatewayFilter` Factory](#modify-a-response-body-gatewayfilter-factory)
* [6.30. Token Relay `GatewayFilter` Factory](#token-relay-gatewayfilter-factory)
* [6.31. The `CacheRequestBody` `GatewayFilter` Factory](#the-cacherequestbody-gatewayfilter-factory)
* [6.32. Default Filters](#default-filters)
* [7. Global Filters](#global-filters)
* [7.1. Combined Global Filter and `GatewayFilter` Ordering](#gateway-combined-global-filter-and-gatewayfilter-ordering)
* [7.2. Forward Routing Filter](#forward-routing-filter)
* [7.3. The `ReactiveLoadBalancerClientFilter`](#reactive-loadbalancer-client-filter)
* [7.4. The Netty Routing Filter](#the-netty-routing-filter)
* [7.5. The Netty Write Response Filter](#the-netty-write-response-filter)
* [7.6. The `RouteToRequestUrl` Filter](#the-routetorequesturl-filter)
* [7.7. The Websocket Routing Filter](#the-websocket-routing-filter)
* [7.8. The Gateway Metrics Filter](#the-gateway-metrics-filter)
* [7.9. Marking An Exchange As Routed](#marking-an-exchange-as-routed)
* [8. HttpHeadersFilters](#httpheadersfilters)
* [8.1. Forwarded Headers Filter](#forwarded-headers-filter)
* [8.2. RemoveHopByHop Headers Filter](#removehopbyhop-headers-filter)
* [8.3. XForwarded Headers Filter](#xforwarded-headers-filter)
* [9. TLS and SSL](#tls-and-ssl)
* [9.1. TLS Handshake](#tls-handshake)
* [10. Configuration](#configuration)
* [10.1. RouteDefinition Metrics](#routedefinition-metrics)
* [11. Route Metadata Configuration](#route-metadata-configuration)
* [12. Http timeouts configuration](#http-timeouts-configuration)
* [12.1. Global timeouts](#global-timeouts)
* [12.2. Per-route timeouts](#per-route-timeouts)
* [12.3. Fluent Java Routes API](#fluent-java-routes-api)
* [12.4. The `DiscoveryClient` Route Definition Locator](#the-discoveryclient-route-definition-locator)
* [12.4.1. Configuring Predicates and Filters For `DiscoveryClient` Routes](#configuring-predicates-and-filters-for-discoveryclient-routes)
* [13. Reactor Netty Access Logs](#reactor-netty-access-logs)
* [14. CORS Configuration](#cors-configuration)
* [15. Actuator API](#actuator-api)
* [15.1. Verbose Actuator Format](#verbose-actuator-format)
* [15.2. Retrieving Route Filters](#retrieving-route-filters)
* [15.2.1. Global Filters](#gateway-global-filters)
* [15.2.2. Route Filters](#gateway-route-filters)
* [15.3. Refreshing the Route Cache](#refreshing-the-route-cache)
* [15.4. Retrieving the Routes Defined in the Gateway](#retrieving-the-routes-defined-in-the-gateway)
* [15.5. Retrieving Information about a Particular Route](#gateway-retrieving-information-about-a-particular-route)
* [15.6. Creating and Deleting a Particular Route](#creating-and-deleting-a-particular-route)
* [15.7. Recap: The List of All endpoints](#recap-the-list-of-all-endpoints)
* [15.8. Sharing Routes between multiple Gateway instances](#sharing-routes-between-multiple-gateway-instances)
* [16. Troubleshooting](#troubleshooting)
* [16.1. Log Levels](#log-levels)
* [16.2. Wiretap](#wiretap)
* [17. Developer Guide](#developer-guide)
* [17.1. Writing Custom Route Predicate Factories](#writing-custom-route-predicate-factories)
* [17.2. Writing Custom GatewayFilter Factories](#writing-custom-gatewayfilter-factories)
* [17.2.1. Naming Custom Filters And References In Configuration](#naming-custom-filters-and-references-in-configuration)
* [17.3. Writing Custom Global Filters](#writing-custom-global-filters)
* [18. Building a Simple Gateway by Using Spring MVC or Webflux](#building-a-simple-gateway-by-using-spring-mvc-or-webflux)
* [19. Configuration properties](#configuration-properties)
**3.1.1**
This project provides an API Gateway built on top of the Spring Ecosystem, including: Spring 5, Spring Boot 2 and Project Reactor. Spring Cloud Gateway aims to provide a simple, yet effective way to route to APIs and provide cross cutting concerns to them such as: security, monitoring/metrics, and resiliency.
......@@ -154,7 +32,7 @@ If you include the starter, but you do not want the gateway to be enabled, set `
The following diagram provides a high-level overview of how Spring Cloud Gateway works:
![Spring Cloud Gateway Diagram](./images/spring_cloud_gateway_diagram.png)
![Spring Cloud Gateway Diagram](https://docs.spring.io/spring-cloud-gateway/docs/3.1.1/reference/html/images/spring_cloud_gateway_diagram.png)
Clients make requests to Spring Cloud Gateway. If the Gateway Handler Mapping determines that a request matches a route, it is sent to the Gateway Web Handler.
This handler runs the request through a filter chain that is specific to the request.
......@@ -1965,7 +1843,7 @@ In addition, through the property `spring.cloud.gateway.metrics.tags.path.enable
* `path`: Path of the request.
These metrics are then available to be scraped from `/actuator/metrics/spring.cloud.gateway.requests` and can be easily integrated with Prometheus to create a [Grafana](images/gateway-grafana-dashboard.jpeg) [dashboard](gateway-grafana-dashboard.json).
These metrics are then available to be scraped from `/actuator/metrics/spring.cloud.gateway.requests` and can be easily integrated with Prometheus to create a [Grafana](https://docs.spring.io/spring-cloud-gateway/docs/3.1.1/reference/html/images/gateway-grafana-dashboard.jpeg) [dashboard](gateway-grafana-dashboard.json).
| |To enable the prometheus endpoint, add `micrometer-registry-prometheus` as a project dependency.|
|---|------------------------------------------------------------------------------------------------|
......
# Spring Cloud Kubernetes
Table of Contents
* [1. Why do you need Spring Cloud Kubernetes?](#why-do-you-need-spring-cloud-kubernetes)
* [2. Starters](#starters)
* [3. DiscoveryClient for Kubernetes](#discoveryclient-for-kubernetes)
* [4. Kubernetes native service discovery](#kubernetes-native-service-discovery)
* [5. Kubernetes PropertySource implementations](#kubernetes-propertysource-implementations)
* [5.1. Using a `ConfigMap` `PropertySource`](#configmap-propertysource)
* [5.2. Secrets PropertySource](#secrets-propertysource)
* [5.3. Namespace resolution](#namespace-resolution)
* [5.4. `PropertySource` Reload](#propertysource-reload)
* [6. Kubernetes Ecosystem Awareness](#kubernetes-ecosystem-awareness)
* [6.1. Kubernetes Profile Autoconfiguration](#kubernetes-profile-autoconfiguration)
* [6.2. Istio Awareness](#istio-awareness)
* [7. Pod Health Indicator](#pod-health-indicator)
* [8. Info Contributor](#info-contributor)
* [9. Leader Election](#leader-election)
* [10. LoadBalancer for Kubernetes](#loadbalancer-for-kubernetes)
* [11. Security Configurations Inside Kubernetes](#security-configurations-inside-kubernetes)
* [11.1. Namespace](#namespace)
* [11.2. Service Account](#service-account)
* [12. Service Registry Implementation](#service-registry-implementation)
* [13. Spring Cloud Kubernetes Configuration Watcher](#spring-cloud-kubernetes-configuration-watcher)
* [13.1. Deployment YAML](#deployment-yaml)
* [13.2. Monitoring ConfigMaps and Secrets](#monitoring-configmaps-and-secrets)
* [13.3. HTTP Implementation](#http-implementation)
* [13.3.1. Non-Default Management Port and Actuator Path](#non-default-management-port-and-actuator-path)
* [13.4. Messaging Implementation](#messaging-implementation)
* [13.5. Configuring RabbitMQ](#configuring-rabbitmq)
* [13.6. Configuring Kafka](#configuring-kafka)
* [14. Spring Cloud Kubernetes Config Server](#spring-cloud-kubernetes-configserver)
* [14.1. Configuration](#configuration)
* [14.1.1. Enabling The Kubernetes Environment Repository](#enabling-the-kubernetes-environment-repository)
* [14.1.2. Config Map and Secret PropertySources](#config-map-and-secret-propertysources)
* [14.1.3. Fetching Config Map and Secret Data From Additional Namespaces](#fetching-config-map-and-secret-data-from-additional-namespaces)
* [14.1.4. Kubernetes Access Controls](#kubernetes-access-controls)
* [14.2. Deployment Yaml](#deployment-yaml-2)
* [15. Spring Cloud Kubernetes Discovery Server](#spring-cloud-kubernetes-discoveryserver)
* [15.1. Permissions](#permissions)
* [15.2. Endpoints](#endpoints)
* [15.2.1. `/apps`](#apps)
* [15.2.2. `/app/{name}`](#appname)
* [15.2.3. `/app/{name}/{instanceid}`](#appnameinstanceid)
* [15.3. Deployment YAML](#deployment-yaml-3)
* [16. Examples](#examples)
* [17. Other Resources](#other-resources)
* [18. Configuration properties](#configuration-properties)
* [19. Building](#building)
* [19.1. Basic Compile and Test](#basic-compile-and-test)
* [19.2. Documentation](#documentation)
* [19.3. Working with the code](#working-with-the-code)
* [19.3.1. Activate the Spring Maven profile](#activate-the-spring-maven-profile)
* [19.3.2. Importing into eclipse with m2eclipse](#importing-into-eclipse-with-m2eclipse)
* [19.3.3. Importing into eclipse without m2eclipse](#importing-into-eclipse-without-m2eclipse)
* [20. Contributing](#contributing)
* [20.1. Sign the Contributor License Agreement](#sign-the-contributor-license-agreement)
* [20.2. Code of Conduct](#code-of-conduct)
* [20.3. Code Conventions and Housekeeping](#code-conventions-and-housekeeping)
* [20.4. Checkstyle](#checkstyle)
* [20.4.1. Checkstyle configuration](#checkstyle-configuration)
* [20.5. IDE setup](#ide-setup)
* [20.5.1. Intellij IDEA](#intellij-idea)
* [20.6. Duplicate Finder](#duplicate-finder)
* [20.6.1. Duplicate Finder configuration](#duplicate-finder-configuration)
This reference guide covers how to use Spring Cloud Kubernetes.
## [](#why-do-you-need-spring-cloud-kubernetes)[1. Why do you need Spring Cloud Kubernetes?](#why-do-you-need-spring-cloud-kubernetes)
......
# Spring Cloud Netflix
Table of Contents
* [1. Service Discovery: Eureka Clients](#service-discovery-eureka-clients)
* [1.1. How to Include Eureka Client](#netflix-eureka-client-starter)
* [1.2. Registering with Eureka](#registering-with-eureka)
* [1.3. Authenticating with the Eureka Server](#authenticating-with-the-eureka-server)
* [1.4. Status Page and Health Indicator](#status-page-and-health-indicator)
* [1.5. Registering a Secure Application](#registering-a-secure-application)
* [1.6. Eureka’s Health Checks](#eurekas-health-checks)
* [1.7. Eureka Metadata for Instances and Clients](#eureka-metadata-for-instances-and-clients)
* [1.7.1. Using Eureka on Cloud Foundry](#using-eureka-on-cloud-foundry)
* [1.7.2. Using Eureka on AWS](#using-eureka-on-aws)
* [1.7.3. Changing the Eureka Instance ID](#changing-the-eureka-instance-id)
* [1.8. Using the EurekaClient](#using-the-eurekaclient)
* [1.8.1. EurekaClient with Jersey](#eurekaclient-with-jersey)
* [1.9. Alternatives to the Native Netflix EurekaClient](#alternatives-to-the-native-netflix-eurekaclient)
* [1.10. Why Is It so Slow to Register a Service?](#why-is-it-so-slow-to-register-a-service)
* [1.11. Zones](#zones)
* [1.12. Refreshing Eureka Clients](#refreshing-eureka-clients)
* [1.13. Using Eureka with Spring Cloud LoadBalancer](#using-eureka-with-spring-cloud-loadbalancer)
* [2. Service Discovery: Eureka Server](#spring-cloud-eureka-server)
* [2.1. How to Include Eureka Server](#netflix-eureka-server-starter)
* [2.2. How to Run a Eureka Server](#spring-cloud-running-eureka-server)
* [2.3. High Availability, Zones and Regions](#spring-cloud-eureka-server-zones-and-regions)
* [2.4. Standalone Mode](#spring-cloud-eureka-server-standalone-mode)
* [2.5. Peer Awareness](#spring-cloud-eureka-server-peer-awareness)
* [2.6. When to Prefer IP Address](#spring-cloud-eureka-server-prefer-ip-address)
* [2.7. Securing The Eureka Server](#securing-the-eureka-server)
* [2.8. JDK 11 Support](#jdk-11-support)
* [3. Configuration properties](#configuration-properties)
**3.1.1**
This project provides Netflix OSS integrations for Spring Boot apps through autoconfiguration
......
# Spring Cloud OpenFeign
Table of Contents
* [1. Declarative REST Client: Feign](#spring-cloud-feign)
* [1.1. How to Include Feign](#netflix-feign-starter)
* [1.2. Overriding Feign Defaults](#spring-cloud-feign-overriding-defaults)
* [1.2.1. `SpringEncoder` configuration](#springencoder-configuration)
* [1.3. Timeout Handling](#timeout-handling)
* [1.4. Creating Feign Clients Manually](#creating-feign-clients-manually)
* [1.5. Feign Spring Cloud CircuitBreaker Support](#spring-cloud-feign-circuitbreaker)
* [1.6. Feign Spring Cloud CircuitBreaker Fallbacks](#spring-cloud-feign-circuitbreaker-fallback)
* [1.7. Feign and `@Primary`](#feign-and-primary)
* [1.8. Feign Inheritance Support](#spring-cloud-feign-inheritance)
* [1.9. Feign request/response compression](#feign-requestresponse-compression)
* [1.10. Feign logging](#feign-logging)
* [1.11. Feign Capability support](#feign-capability-support)
* [1.12. Feign metrics](#feign-metrics)
* [1.13. Feign Caching](#feign-caching)
* [1.14. Feign @QueryMap support](#feign-querymap-support)
* [1.15. HATEOAS support](#hateoas-support)
* [1.16. Spring @MatrixVariable Support](#spring-matrixvariable-support)
* [1.17. Feign `CollectionFormat` support](#feign-collectionformat-support)
* [1.18. Reactive Support](#reactive-support)
* [1.18.1. Early Initialization Errors](#early-initialization-errors)
* [1.19. Spring Data Support](#spring-data-support)
* [1.20. Spring `@RefreshScope` Support](#spring-refreshscope-support)
* [1.21. OAuth2 Support](#oauth2-support)
* [2. Configuration properties](#configuration-properties)
**3.1.1**
This project provides OpenFeign integrations for Spring Boot apps through autoconfiguration
......
# Spring Cloud Task Reference Guide
Michael Minella, Glenn Renfro, Jay Bryant
Table of Contents
* [Preface](#preface)
* [1. About the documentation](#about-the-documentation)
* [2. Getting help](#task-documentation-getting-help)
* [3. First Steps](#task-documentation-first-steps)
* [Getting started](#getting-started)
* [4. Introducing Spring Cloud Task](#getting-started-introducing-spring-cloud-task)
* [5. System Requirements](#getting-started-system-requirements)
* [5.1. Database Requirements](#database-requirements)
* [6. Developing Your First Spring Cloud Task Application](#getting-started-developing-first-task)
* [6.1. Creating the Spring Task Project using Spring Initializr](#getting-started-creating-project)
* [6.2. Writing the Code](#getting-started-writing-the-code)
* [6.3. Running the Example](#getting-started-running-the-example)
* [Features](#features)
* [7. The lifecycle of a Spring Cloud Task](#features-lifecycle)
* [7.1. The TaskExecution](#features-task-execution-details)
* [7.2. Mapping Exit Codes](#features-lifecycle-exit-codes)
* [8. Configuration](#features-configuration)
* [8.1. DataSource](#features-data-source)
* [8.2. Table Prefix](#features-table-prefix)
* [8.3. Enable/Disable table initialization](#features-table-initialization)
* [8.4. Externally Generated Task ID](#features-generated_task_id)
* [8.5. External Task Id](#features-external_task_id)
* [8.6. Parent Task Id](#features-parent_task_id)
* [8.7. TaskConfigurer](#features-task-configurer)
* [8.8. Task Name](#features-task-name)
* [8.9. Task Execution Listener](#features-task-execution-listener)
* [8.10. Restricting Spring Cloud Task Instances](#features-single-instance-enabled)
* [8.11. Disabling Spring Cloud Task Auto Configuration](#disabling-spring-cloud-task-auto-configuration)
* [8.12. Closing the Context](#closing-the-context)
* [Batch](#batch)
* [9. Associating a Job Execution to the Task in which It Was Executed](#batch-association)
* [9.1. Overriding the TaskBatchExecutionListener](#batch-association-override)
* [10. Remote Partitioning](#batch-partitioning)
* [10.1. Notes on Developing a Batch-partitioned application for the Kubernetes Platform](#notes-on-developing-a-batch-partitioned-application-for-the-kubernetes-platform)
* [10.2. Notes on Developing a Batch-partitioned Application for the Cloud Foundry Platform](#notes-on-developing-a-batch-partitioned-application-for-the-cloud-foundry-platform)
* [11. Batch Informational Messages](#batch-informational-messages)
* [12. Batch Job Exit Codes](#batch-failures-and-tasks)
* [Single Step Batch Job Starter](#batch-job-starter)
* [13. Defining a Job](#job-definition)
* [13.1. Properties](#job-definition-properties)
* [14. Autoconfiguration for ItemReader Implementations](#item-readers)
* [14.1. AmqpItemReader](#amqpitemreader)
* [14.2. FlatFileItemReader](#flatfileitemreader)
* [14.3. JdbcCursorItemReader](#jdbcCursorItemReader)
* [14.4. KafkaItemReader](#kafkaItemReader)
* [15. ItemProcessor Configuration](#item-processors)
* [16. Autoconfiguration for ItemWriter implementations](#item-writers)
* [16.1. AmqpItemWriter](#amqpitemwriter)
* [16.2. FlatFileItemWriter](#flatfileitemwriter)
* [16.3. JdbcBatchItemWriter](#jdbcitemwriter)
* [16.4. KafkaItemWriter](#kafkaitemwriter)
* [Spring Cloud Stream Integration](#stream-integration)
* [17. Launching a Task from a Spring Cloud Stream](#stream-integration-launching-sink)
* [17.1. Spring Cloud Data Flow](#stream-integration-launching-sink-dataflow)
* [18. Spring Cloud Task Events](#stream-integration-events)
* [18.1. Disabling Specific Task Events](#stream-integration-disable-task-events)
* [19. Spring Batch Events](#stream-integration-batch-events)
* [19.1. Sending Batch Events to Different Channels](#sending-batch-events-to-different-channels)
* [19.2. Disabling Batch Events](#disabling-batch-events)
* [19.3. Emit Order for Batch Events](#emit-order-for-batch-events)
* [Appendices](#appendix)
* [20. Task Repository Schema](#appendix-task-repository-schema)
* [20.1. Table Information](#table-information)
* [20.2. SQL Server](#sql-server)
* [21. Building This Documentation](#appendix-building-the-documentation)
* [22. Running a Task App on Cloud Foundry](#appendix-cloud-foundry)
Version 2.4.1
© 2009-2021 VMware, Inc. All rights reserved.
......@@ -1328,7 +1242,7 @@ spring.cloud.task.batch.events.skip-order=5
This appendix provides an ERD for the database schema used in the task repository.
![task schema](./images/task_schema.png)
![task schema](https://docs.spring.io/spring-cloud-task/docs/2.4.1/reference/html/images/task_schema.png)
### [](#table-information)[20.1. Table Information](#table-information)
......
......@@ -2,67 +2,6 @@
version 3.1.0
Table of Contents
* [1. New & Noteworthy](#new-noteworthy)
* [1.1. New in Spring Cloud Vault 3.0](#new-in-3.0.0)
* [2. Quick Start](#quick-start)
* [3. Client Side Usage](#client-side-usage)
* [3.1. Authentication](#authentication)
* [4. ConfigData API](#vault.configdata)
* [4.1. ConfigData Locations](#vault.configdata.locations)
* [4.2. Conditionally enable/disable Vault Configuration](#vault.configdata.location.optional)
* [4.3. Infrastructure Customization](#vault.configdata.customization)
* [5. Authentication methods](#vault.config.authentication)
* [5.1. Token authentication](#vault.config.authentication.token)
* [5.2. Vault Agent authentication](#vault.config.authentication.vault-agent)
* [5.3. AppId authentication](#vault.config.authentication.appid)
* [5.4. AppRole authentication](#approle-authentication)
* [5.5. AWS-EC2 authentication](#vault.config.authentication.awsec2)
* [5.6. AWS-IAM authentication](#vault.config.authentication.awsiam)
* [5.7. Azure MSI authentication](#vault.config.authentication.azuremsi)
* [5.8. TLS certificate authentication](#vault.config.authentication.clientcert)
* [5.9. Cubbyhole authentication](#vault.config.authentication.cubbyhole)
* [5.10. GCP-GCE authentication](#vault.config.authentication.gcpgce)
* [5.11. GCP-IAM authentication](#vault.config.authentication.gcpiam)
* [5.12. Kubernetes authentication](#vault.config.authentication.kubernetes)
* [5.13. Pivotal CloudFoundry authentication](#vault.config.authentication.pcf)
* [6. ACL Requirements](#vault.config.acl)
* [6.1. Authentication](#authentication-2)
* [6.2. KeyValue Mount Discovery](#keyvalue-mount-discovery)
* [6.3. SecretLeaseContainer](#secretleasecontainer)
* [6.4. Session Management](#session-management)
* [7. Secret Backends](#vault.config.backends)
* [7.1. Key-Value Backend](#vault.config.backends.kv.versioned)
* [7.2. Consul](#vault.config.backends.consul)
* [7.3. RabbitMQ](#vault.config.backends.rabbitmq)
* [7.4. AWS](#vault.config.backends.aws)
* [8. Database backends](#vault.config.backends.database-backends)
* [8.1. Database](#vault.config.backends.database)
* [8.2. Multiple Databases](#vault.config.backends.databases)
* [8.3. Apache Cassandra](#vault.config.backends.cassandra)
* [8.4. Couchbase Database](#vault.config.backends.couchbase)
* [8.5. Elasticsearch](#vault.config.backends.elasticsearch)
* [8.6. MongoDB](#vault.config.backends.mongodb)
* [8.7. MySQL](#vault.config.backends.mysql)
* [8.8. PostgreSQL](#vault.config.backends.postgresql)
* [9. Customize which secret backends to expose as PropertySource](#vault.config.backends.configurer)
* [10. Custom Secret Backend Implementations](#vault.config.backends.custom)
* [11. Service Registry Configuration](#service-registry-configuration)
* [12. Vault Client Fail Fast](#vault.config.fail-fast)
* [13. Vault Enterprise Namespace Support](#vault.config.namespaces)
* [14. Vault Client SSL configuration](#vault.config.ssl)
* [15. Lease lifecycle management (renewal and revocation)](#vault-lease-renewal)
* [16. Session token lifecycle management (renewal, re-login and revocation)](#vault-session-lifecycle)
* [Appendix A: Common application properties](#common-application-properties)
© 2016-2021 the original authors.
| |*Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.*|
......
Table of Contents
* [Spring Cloud Zookeeper](#_spring_cloud_zookeeper)
* [1. Quick Start](#quick-start)
* [1.1. Discovery Client Usage](#discovery-client-usage)
* [1.2. Distributed Configuration Usage](#distributed-configuration-usage)
* [2. Install Zookeeper](#spring-cloud-zookeeper-install)
* [3. Service Discovery with Zookeeper](#spring-cloud-zookeeper-discovery)
* [3.1. Activating](#activating)
* [3.2. Registering with Zookeeper](#registering-with-zookeeper)
* [3.3. Using the DiscoveryClient](#using-the-discoveryclient)
* [4. Using Spring Cloud Zookeeper with Spring Cloud Components](#spring-cloud-zookeeper-other-componentes)
* [4.1. Spring Cloud LoadBalancer with Zookeeper](#spring-cloud-loadbalancer-with-zookeeper)
* [5. Spring Cloud Zookeeper and Service Registry](#spring-cloud-zookeeper-service-registry)
* [5.1. Instance Status](#instance-status)
* [6. Zookeeper Dependencies](#spring-cloud-zookeeper-dependencies)
* [6.1. Using the Zookeeper Dependencies](#spring-cloud-zookeeper-dependencies-using)
* [6.2. Activating Zookeeper Dependencies](#spring-cloud-zookeeper-dependencies-activating)
* [6.3. Setting up Zookeeper Dependencies](#spring-cloud-zookeeper-dependencies-setting-up)
* [6.4. Configuring Spring Cloud Zookeeper Dependencies](#spring-cloud-zookeeper-dependencies-configuring)
* [7. Spring Cloud Zookeeper Dependency Watcher](#spring-cloud-zookeeper-dependency-watcher)
* [7.1. Activating](#activating-2)
* [7.2. Registering a Listener](#registering-a-listener)
* [7.3. Using the Presence Checker](#spring-cloud-zookeeper-dependency-watcher-presence-checker)
* [8. Distributed Configuration with Zookeeper](#spring-cloud-zookeeper-config)
* [8.1. Activating](#activating-3)
* [8.2. Spring Boot Config Data Import](#config-data-import)
* [8.3. Customizing](#customizing)
* [8.4. Access Control Lists (ACLs)](#access-control-lists-acls)
# [Spring Cloud Zookeeper](#_spring_cloud_zookeeper)
......
此差异已折叠。
# 构建工具插件
Spring Boot 为 Maven 和 Gradle 提供了构建工具插件。这些插件提供了各种特性,包括可执行 JAR 的打包。本节提供了有关这两个插件的更多详细信息,以及在需要扩展不受支持的构建系统时提供的一些帮助。如果你刚刚开始,你可能需要先阅读“[using.html](using.html#using.build-systems)”一节中的“[using.html](using.html#using)”。
Spring Boot 为 Maven 和 Gradle 提供了构建工具插件。这些插件提供了各种特性,包括可执行 JAR 的打包。本节提供了有关这两个插件的更多详细信息,以及在需要扩展不受支持的构建系统时提供的一些帮助。如果你刚刚开始,那么你可能需要先阅读“[using.html](using.html#using.build-systems)”一节中的“[using.html](using.html#using)”。
## 1.1 Spring 引导 Maven 插件
......@@ -38,7 +38,7 @@ Spring 启动 Antlib 模块为 Apache Ant 提供了基本的 Spring 启动支持
$ ant -lib <directory containing spring-boot-antlib-2.6.4.jar>
```
> “使用 Spring 引导”部分包括[using Apache Ant with `spring-boot-antlib`](using.html#using.build-systems.ant)的更完整示例
> “使用 Spring 引导”部分包括一个更完整的[使用`spring-boot-antlib`的 Apache Ant 示例](使用.html#using.build-systems. Ant)
### 3.1. Spring 引导 Ant 任务
......@@ -50,13 +50,13 @@ $ ant -lib <directory containing spring-boot-antlib-2.6.4.jar>
#### 3.1.1.使用“exejar”任务
你可以使用`exejar`任务来创建 Spring 引导可执行文件 jar。该任务支持以下属性:
你可以使用`exejar`任务来创建一个 Spring 引导可执行文件 jar。该任务支持以下属性:
| Attribute | Description |必需的|
|-------------|--------------------------------------|-------------------------------------------------------------------------|
| `destfile` | The destination jar file to create |是的|
| `classes` |The root directory of Java class files|是的|
|`start-class`| The main application class to run |否*(the default is the first class found that declares a `main` method)*|
|`start-class`| The main application class to run |否 *(默认值是发现的第一个类,它声明了`main`方法)*|
以下嵌套元素可与任务一起使用:
......@@ -67,7 +67,7 @@ $ ant -lib <directory containing spring-boot-antlib-2.6.4.jar>
#### 3.1.2.例子
本节展示了 Ant 任务的两个示例。
本节展示了 Ant 任务的两个示例。
指定起始类
......@@ -101,7 +101,7 @@ $ ant -lib <directory containing spring-boot-antlib-2.6.4.jar>
|-------------|----------------------------------------------------|-------------------------------------------|
|`classesroot`|Java 类文件的根目录| Yes *(unless `mainclass` is specified)* |
| `mainclass` |可用于短路`main`类搜索| No |
| `property` |应与结果一起设置的 Ant 属性|No *(result will be logged if unspecified)*|
| `property` |Ant 应与结果一起设置的属性|No *(result will be logged if unspecified)*|
#### 3.2.1.例子
......@@ -127,7 +127,7 @@ $ ant -lib <directory containing spring-boot-antlib-2.6.4.jar>
## 4. 支持其他构建系统
如果你使用 Maven、 Gradle 或 Ant 以外的构建工具,那么你可能需要开发自己的插件。可执行 JAR 需要遵循特定的格式,并且某些条目需要以未压缩的形式编写(有关详细信息,请参见附录中的“[executable jar format](executable-jar.html#appendix.executable-jar)”部分)。
如果你希望使用 Maven、 Gradle 或 Ant 以外的构建工具,那么你可能需要开发自己的插件。可执行 JAR 需要遵循特定的格式,并且某些条目需要以未压缩的形式编写(有关详细信息,请参见附录中的“[executable jar format](executable-jar.html#appendix.executable-jar)”部分)。
Spring boot Maven 和 Gradle 插件都使用`spring-boot-loader-tools`来实际生成 JAR。如果需要,可以直接使用这个库。
......@@ -143,7 +143,7 @@ Spring boot Maven 和 Gradle 插件都使用`spring-boot-loader-tools`来实际
### 4.3.寻找主类
如果你不使用`Repackager.setMainClass()`来指定主类,则 Repackager 将使用[ASM](https://asm.ow2.io/)来读取类文件,并尝试使用`public static void main(String[] args)`方法找到合适的类。如果发现一个以上的候选者,将抛出一个异常。
如果你没有使用`Repackager.setMainClass()`来指定主类,那么 Repackager 将使用[ASM](https://asm.ow2.io/)来读取类文件,并尝试使用`public static void main(String[] args)`方法找到合适的类。如果发现一个以上的候选者,将抛出一个异常。
### 4.4.示例重新打包实现
......@@ -184,9 +184,9 @@ public class MyBuildTool {
```
## 5. 接下来读什么?
## 5. 接下来读什么?
如果你对构建工具插件的工作方式感兴趣,可以查看 Github 上的[`spring-boot-tools`](https://github.com/spring-projects/spring-boot/tree/v2.6.4/spring-boot-project/spring-boot-tools)模块。可执行 jar 格式的更多技术细节在[the appendix](executable-jar.html#appendix.executable-jar)中进行了介绍。
如果你对构建工具插件的工作方式感兴趣,可以查看 Github 上的[`spring-boot-tools`](https://github.com/ Spring-projects/ Spring-boot/tree/v2.6.4/ Spring-boot-project/ Spring-boot-tools)模块。可执行 jar 格式的更多技术细节在[附录](executable-jar.html#appendix.executable-jar)中进行了介绍。
如果你有特定的与构建相关的问题,请参阅“[how-to](howto.html#howto)”指南。
# Spring 引导 CLI
Spring 引导 CLI 是一个命令行工具,如果你想快速开发 Spring 应用程序,可以使用它。它允许你运行 Groovy 脚本,这意味着你有一个熟悉的类似 Java 的语法,而不需要那么多样板代码。你还可以引导一个新项目,或者为它编写自己的命令。
Spring 引导 CLI 是一个命令行工具,如果你想快速开发 Spring 应用程序,可以使用它。它允许你运行 Groovy 脚本,这意味着你有一个熟悉的类似 Java 的语法,而不需要那么多样板代码。你还可以引导一个新项目或为其编写自己的命令。
## 1. 安装 CLI
可以使用 SDKMAN 手动安装 Spring boot cli(命令行界面)!(SDK 管理器),或者如果你是 OSX 用户,则使用 Homebrew 或 MacPorts。有关全面的安装说明,请参见“开始”部分中的*[getting-started.html](getting-started.html#getting-started.installing.cli)*
可以使用 SDKMAN 手动安装 Spring boot cli(命令行界面)!(SDK 管理器),或者如果你是 OSX 用户,则使用 Homebrew 或 MacPorts。有关全面的安装说明,请参见“入门”部分中的 *[getting-started.html](getting-started.html#getting-started.installing.cli)*
## 2. 使用 CLI
......@@ -23,7 +23,7 @@ Available commands are:
_... more command help is shown here_
```
你可以键入`spring help`来获有关任何支持的命令的更多详细信息,如以下示例所示:
你可以键入`spring help`来获有关任何支持的命令的更多详细信息,如以下示例所示:
```
$ spring help run
......@@ -115,7 +115,7 @@ Spring Boot 进一步扩展了这种技术,并试图根据你的代码推断
|`@EnableWebSecurity`| Spring Security. |
|`@EnableTransactionManagement`|Spring Transaction Management.|
| |请参阅 Spring Boot CLI 源代码中[“编译器自动配置”](https://github.com/spring-projects/spring-boot/tree/v2.6.4/spring-boot-project/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/CompilerAutoConfiguration.java)的子类,以确切了解如何应用自定义。|
| |参见[`CompilerAutoConfiguration`](https://github.com/ Spring-projects/ Spring-boot/tree/v2.6.4/ Spring-boot-project/ Spring-boot-cli/SRC/main/java/org/springframework/boot/cli/compiler/compiler/compilerautorfigation.java)的子类,在 Spring bootcli 源代码中了解定制是如何应用的。|
|---|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
#### 2.1.2.推导出的“抓取”坐标
......@@ -138,7 +138,7 @@ Spring Boot 扩展了 Groovy 的标准`@Grab`支持,允许你指定一个没
#### 2.1.5.自定义依赖管理
默认情况下,CLI 在解析`@Grab`依赖关系时使用在`spring-boot-dependencies`中声明的依赖关系管理。可以通过使用`@DependencyManagementBom`注释来配置额外的依赖管理,该管理覆盖了默认的依赖管理。注释的值应该指定一个或多个 Maven boms 的坐标(“groupid:artifactid:version”)。
默认情况下,CLI 在解析`@Grab`依赖关系时使用在`spring-boot-dependencies`中声明的依赖关系管理。可以通过使用`@DependencyManagementBom`注释来配置附加的依赖项管理,该管理覆盖了默认的依赖项管理。注释的值应该指定一个或多个 Maven boms 的坐标(`groupId:artifactId:version`)。
例如,考虑以下声明:
......@@ -178,7 +178,7 @@ $ spring run *.groovy
$ spring jar my-app.jar *.groovy
```
jar 结果包含通过编译应用程序产生的类和应用程序的所有依赖项,这样就可以使用`java -jar`运行它。 jar 文件还包含来自应用程序 Classpath 的条目。可以通过使用`--include``--exclude`来添加和删除 jar 的显式路径。两者都是用逗号分隔的,并且都接受前缀,以“+”和“-”的形式表示它们应该从默认值中删除。默认值包括以下内容:
jar 结果包含通过编译应用程序产生的类和应用程序的所有依赖项,这样就可以使用`java -jar`运行它。 jar 文件还包含来自应用程序 Classpath 的条目。可以使用`--include``--exclude`来添加和删除 jar 的显式路径。两者都是用逗号分隔的,并且都接受前缀,以“+”和“-”的形式表示它们应该从默认值中删除。默认值包括以下内容:
```
public/**, resources/**, static/**, templates/**, META-INF/**, *
......@@ -281,7 +281,7 @@ $ spring uninstall --all
## 3. 使用 Groovy Beans DSL 开发应用程序
Spring Framework4.0 对`beans{}`“DSL”(借[Grails](https://grails.org/))具有原生支持,并且你可以通过使用相同的格式在 Groovy 应用程序脚本中嵌入 Bean 定义。这有时是一种很好的方式,可以包含外部特性,比如中间件声明,如下例所示:
Spring Framework4.0 对`beans{}`“DSL”(借[Grails](https://grails.org/))具有原生支持,并且你可以通过使用相同的格式在 Groovy 应用程序脚本中嵌入 Bean 定义。这有时是一种很好的方式,可以包含外部特性,比如中间件声明,如下例所示:
```
@Configuration(proxyBeanMethods = false)
......@@ -331,8 +331,8 @@ Spring 引导 CLI 使用 Maven resolver( Maven 的依赖项解析引擎)来
有关更多信息,请参见[Maven’s settings documentation](https://maven.apache.org/settings.html)
## 5. 接下来读什么?
## 5. 接下来读什么?
GitHub 存储库中有一些[Groovy 脚本示例](https://github.com/spring-projects/spring-boot/tree/v2.6.4/spring-boot-project/spring-boot-cli/samples)可用,你可以使用它们来尝试 Spring 引导 CLI。在[source code](https://github.com/spring-projects/spring-boot/tree/v2.6.4/spring-boot-project/spring-boot-cli/src/main/java/org/springframework/boot/cli)中也有大量的 Javadoc。
GitHub 存储库中有一些[Groovy 脚本示例](https://github.com/spring-projects/spring-boot/tree/v2.6.4/spring-boot-project/spring-boot-cli/samples)可用,你可以使用它们来尝试 Spring 引导 CLI。在[源代码](https://github.com/spring-projects/spring-boot/tree/v2.6.4/spring-boot-project/spring-boot-cli/src/main/java/org/springframework/boot/cli)中也有大量的 Javadoc。
如果你发现你已经达到了 CLI 工具的极限,那么你可能希望将你的应用程序转换为完整的 Gradle 或 Maven 构建的“Groovy 项目”。下一节将介绍 Spring boot 的“[构建工具插件](build-tool-plugins.html#build-tool-plugins)”,你可以在 Gradle 或 Maven 中使用它。
# 容器图像
Spring 引导应用程序可以是容器化的[使用 DockerFiles](#container-images.dockerfiles),也可以是容器化的[使用本地云构建包创建优化的 Docker 兼容容器映像,可以在任何地方运行](#container-images.buildpacks)
Spring 引导应用程序可以是容器化的[使用 DockerFiles](#container-images.dockerfiles),也可以是容器化的[使用本地云构建包创建可在任何地方运行的优化的 Docker 兼容容器映像](#container-images.buildpacks)
## 1. 高效的容器图像
将 Spring 引导 fat jar 打包为 Docker 映像是很容易的。然而,复制和运行 Docker 映像中的 fat jar 有各种缺点。在不拆包的情况下运行 A fat jar 时,总会有一定的开销,在集装箱化的环境中,这一点是显而易见的。另一个问题是,将应用程序的代码及其所有依赖项放在 Docker 映像中的一个层中是次优的。由于你重新编译代码的次数可能比升级所使用的启动版本更多,所以更好的做法通常是多分离一些东西。如果将 jar 个文件放在应用程序类之前的层中,Docker 通常只需要更改最底层的文件,就可以从其缓存中获取其他文件。
将 Spring 引导 fat jar 打包为 Docker 映像是很容易的。然而,复制和运行 Docker 映像中的 fat jar 有各种缺点。在不拆包的情况下运行 A fat jar 时,总会有一定的开销,在集装箱化的环境中,这一点可能是显而易见的。另一个问题是,将应用程序的代码及其所有依赖项放在 Docker 映像中的一个层中是次优的。由于你重新编译代码的次数可能比升级所使用的启动版本更多,所以更好的做法通常是多分离一些代码。如果将 jar 个文件放在应用程序类之前的层中,Docker 通常只需要更改最底层的文件,就可以从其缓存中获取其他文件。
### 1.1.打开 fat jar
......@@ -56,9 +56,9 @@ $ java -cp BOOT-INF/classes:BOOT-INF/lib/* com.example.MyApplication
- BOOT-INF/classes/a/b/C.class
```
这种分层设计是为了根据在应用程序构建之间更改代码的可能性来分离代码。库代码在两次构建之间更改的可能性较小,因此将其放置在自己的层中,以允许工具重新使用缓存中的层。应用程序代码更有可能在构建之间进行更改,因此它被隔离在一个单独的层中。
这种分层设计是为了根据在应用程序构建之间更改代码的可能性来分离代码。库代码不太可能在构建之间发生变化,因此将其放置在自己的层中,以允许工具重新使用缓存中的层。应用程序代码更有可能在不同的构建之间进行更改,因此它被隔离在一个单独的层中。
Spring 在`layers.idx`的帮助下,引导还支持对 WAR 文件进行分层。
Spring 在`layers.idx`的帮助下,启动还支持对 WAR 文件进行分层。
对于 Maven,请参阅[packaging layered jar or war section](https://docs.spring.io/spring-boot/docs/2.6.4/maven-plugin/reference/htmlsingle/#repackage-layers)以获取有关向归档文件添加图层索引的更多详细信息。有关 Gradle,请参见 Gradle 插件文档的[packaging layered jar or war section](https://docs.spring.io/spring-boot/docs/2.6.4/gradle-plugin/reference/htmlsingle/#packaging-layered-archives)
......@@ -119,7 +119,7 @@ $ docker build --build-arg JAR_FILE=path/to/myapp.jar .
DockerFiles 只是构建 Docker 映像的一种方式。另一种构建 Docker 映像的方法是直接从 Maven 或 Gradle 插件中使用 buildpacks。如果你曾经使用过 Cloud Foundry 或 Heroku 之类的应用程序平台,那么你很可能使用过 BuildPack。构建包是平台的一部分,它接收应用程序并将其转换为平台可以实际运行的内容。例如,Cloud Foundry 的 Java BuildPack 会注意到,你正在推送一个`.jar`文件,并自动添加一个相关的 JRE。
使用 Cloud Native 构建包,你可以创建可以在任何地方运行的与 Docker 兼容的映像。 Spring 引导包括直接针对 Maven 和 Gradle 的 BuildPack 支持。这意味着你只需键入一个命令,就可以快速地在本地运行的 Docker 守护程序中获得一个合理的映像。
使用 Cloud Native 构建包,你可以创建可以在任何地方运行的与 Docker 兼容的映像。 Spring 引导包括直接针对 Maven 和 Gradle 的 BuildPack 支持。这意味着你只需键入一个命令,就可以快速地在本地运行的 Docker 守护进程中获得一个合理的映像。
请参阅有关如何使用[Maven](https://docs.spring.io/spring-boot/docs/2.6.4/maven-plugin/reference/htmlsingle/#build-image)[Gradle](https://docs.spring.io/spring-boot/docs/2.6.4/gradle-plugin/reference/htmlsingle/#build-image)构建包的单个插件文档。
......@@ -129,7 +129,7 @@ DockerFiles 只是构建 Docker 映像的一种方式。另一种构建 Docker
| |为了实现可重复的构建和容器映像缓存,构建包可以操作应用程序资源元数据(例如文件“上次修改”信息)。<br/>你应该确保你的应用程序在运行时不依赖于该元数据。<br/> Spring 引导在服务静态资源时可以使用该信息,但这可以用`spring.web.resources.cache.use-last-modified`禁用|
|---|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
## 4. 接下来读什么?
## 4. 接下来读什么?
一旦你了解了如何构建高效的容器映像,你就可以了解[将应用程序部署到云平台](deployment.html#deployment.cloud.kubernetes),比如 Kubernetes。
此差异已折叠。
此差异已折叠。
......@@ -8,7 +8,7 @@
如果你开始使用 Spring boot 或一般的“ Spring”,请从[以下主题](getting-started.html#getting-started)开始:
* **从零开始:** [Overview](getting-started.html#getting-started.introducing-spring-boot) | [Requirements](getting-started.html#getting-started.system-requirements) | [Installation](getting-started.html#getting-started.installing)
* **从零开始:** [Overview](getting-started.html#getting-started.introducing-spring-boot) | [所需经费](getting-started.html#getting-started.system-requirements) | [安装](getting-started.html#getting-started.installing)
* **教程:** [Part 1](getting-started.html#getting-started.first-application) | [Part 2](getting-started.html#getting-started.first-application.code)
......@@ -32,13 +32,13 @@
* **构建系统:** [Maven](using.html#using.build-systems.maven) | [Gradle](using.html#using.build-systems.gradle) | [Ant](using.html#using.build-systems.ant) | [Starters](using.html#using.build-systems.starters)
* **最佳实践:** [Code Structure](using.html#using.structuring-your-code) | [@Configuration](using.html#using.configuration-classes) | [@enableAutoConfiguration](using.html#using.auto-configuration) | [bean 和依赖注入](using.html#using.spring-beans-and-dependency-injection)
* **最佳实践:** [代码结构](using.html#using.structuring-your-code) | [@ 配置](using.html#using.configuration-classes) | [@enableAutoConfiguration](using.html#using.auto-configuration) | [bean 和依赖注入](using.html#using.spring-beans-and-dependency-injection)
* **运行你的代码:** [IDE](using.html#using.running-your-application.from-an-ide) | [Packaged](using.html#using.running-your-application.as-a-packaged-application) | [Maven](using.html#using.running-your-application.with-the-maven-plugin) | [Gradle](using.html#using.running-your-application.with-the-gradle-plugin)
* **打包应用程序:** [Production jars](using.html#using.packaging-for-production)
* **打包应用程序:** [生产罐子](using.html#using.packaging-for-production)
* **Spring Boot CLI:** [Using the CLI](cli.html#cli)
* **Spring Boot CLI:** [使用 CLI](cli.html#cli)
## 4. 学习 Spring 引导功能
......@@ -98,7 +98,7 @@
* **石英:** [石英调度](io.html#io.quartz)
* **邮件:** [Sending Email](io.html#io.email)
* **邮件:** [发送电子邮件](io.html#io.email)
* **验证:** [JSR-303 验证](io.html#io.validation)
......@@ -126,5 +126,5 @@ Spring Boot 为构建高效的容器映像提供了一流的支持。你可以
* **构建工具插件:** [Maven](build-tool-plugins.html#build-tool-plugins.maven) | [Gradle](build-tool-plugins.html#build-tool-plugins.gradle)
* **附录:** [应用程序属性](application-properties.html#appendix.application-properties) | [配置元数据](configuration-metadata.html#appendix.configuration-metadata) | [自动配置类](auto-configuration-classes.html#appendix.auto-configuration-classes) | [测试自动配置注释](test-auto-configuration.html#appendix.test-auto-configuration) | [Executable Jars](executable-jar.html#appendix.executable-jar) | [依赖版本](dependency-versions.html#appendix.dependency-versions)
* **附录:** [应用程序属性](application-properties.html#appendix.application-properties) | [配置元数据](configuration-metadata.html#appendix.configuration-metadata) | [自动配置类](auto-configuration-classes.html#appendix.auto-configuration-classes) | [测试自动配置注释](test-auto-configuration.html#appendix.test-auto-configuration) | [可执行 JAR](executable-jar.html#appendix.executable-jar) | [依赖版本](dependency-versions.html#appendix.dependency-versions)
因为 它太大了无法显示 source diff 。你可以改为 查看blob
......@@ -6,10 +6,10 @@
* 学习基础知识。 Spring Boot 建立在许多其他 Spring 项目之上。查看[spring.io](https://spring.io)网站以获取大量的参考文档。如果你从 Spring 开始,请尝试[guides](https://spring.io/guides)中的一个。
* 问一个问题。我们监视[stackoverflow.com](https://stackoverflow.com)中带有[`spring-boot`](https://stackoverflow.com/tags/spring-boot)标记的问题
* 问一个问题。我们监视[stackoverflow.com](https://stackoverflow.com)中带有[`spring-boot`]标记的问题(https://stackoverflow.com/tags/ Spring-boot)
* 使用 Spring boot 在[github.com/spring-projects/spring-boot/issues](https://github.com/spring-projects/spring-boot/issues)上报告错误。
注:
所有的启动都是开源的,包括文档。如果你发现 DOCS 存在问题或希望改进它们,请[get involved](https://github.com/spring-projects/spring-boot/tree/v2.6.4)
\ No newline at end of file
所有的启动都是开源的,包括文档。如果你发现 DOCS 存在问题或希望改进它们,请[参与进来](https://github.com/spring-projects/spring-boot/tree/v2.6.4)
\ No newline at end of file
......@@ -14,7 +14,7 @@ Spring 引导帮助你创建可以运行的独立的、基于生产级别 Spring
* 在需求开始偏离默认值时,不要拘泥于常规,但要尽快摆脱。
* 提供一系列非功能特性,这些特性是大型项目(如嵌入式服务器、安全性、度量、健康检查和外部化配置)所共有的
* 提供一系列非功能特性,这些特性是大型项目类所共有的(例如嵌入式服务器、安全性、度量、健康检查和外部化配置)
* 绝对不需要代码生成,也不需要 XML 配置。
......@@ -97,11 +97,11 @@ Spring 引导 CLI(命令行界面)是一种命令行工具,你可以使用
尖端[快照分布](https://repo.spring.io/snapshot/org/springframework/boot/spring-boot-cli/)也是可用的。
一旦下载,请按照解压缩归档文件中的[INSTALL.txt](https://raw.githubusercontent.com/spring-projects/spring-boot/v2.6.4/spring-boot-project/spring-boot-cli/src/main/content/INSTALL.txt)说明进行操作。总之,在`.zip`文件中的`bin/`目录中有一个`spring`脚本(用于 Windows 的 ` Spring.bat`)。或者,你可以在`java -jar`文件中使用`.jar`(该脚本可以帮助你确保 Classpath 设置正确)。
一旦下载,请按照解压缩归档文件中的[安装.TXT](https://raw.githubusercontent.com/spring-projects/spring-boot/v2.6.4/spring-boot-project/spring-boot-cli/src/main/content/INSTALL.txt)说明进行操作。总之,在`.zip`文件中的`bin/`目录中有一个`spring`脚本(`spring.bat`用于 Windows)。或者,你可以在`.jar`文件中使用`java -jar`(该脚本可以帮助你确保 Classpath 设置正确)。
#### 3.2.2.用 SDKMAN 安装!
SDKMAN!(软件开发工具包管理器)可以用于管理各种二进制 SDK 的多个版本,包括 Groovy 和 Spring 引导 CLI。得到 SDKMAN!从[sdkman.io](https://sdkman.io)开始,使用以下命令安装 Spring boot:
SDKMAN!(软件开发工具包管理器)可以用于管理各种二进制 SDK 的多个版本,包括 Groovy 和 Spring Boot CLI。得到 SDKMAN!从[sdkman.io](https://sdkman.io)开始,使用以下命令安装 Spring boot:
```
$ sdk install springboot
......@@ -149,7 +149,7 @@ $ brew install spring-boot
Homebrew 将`spring`安装到`/usr/local/bin`
| |如果你没有看到公式,那么你安装的 BREW 可能已经过<br/>在这种情况下,运行`brew update`,然后再试一次。|
| |如果你没有看到公式,那么你安装的 BREW 可能已经过<br/>在这种情况下,运行`brew update`,然后再试一次。|
|---|---------------------------------------------------------------------------------------------------------------------------------|
#### 3.2.4. MacPorts 安装
......@@ -170,7 +170,7 @@ $ spring <HIT TAB HERE>
grab help jar run test version
```
| |如果你使用 Homebrew 或 MacPorts 安装 Spring 引导 CLI,那么命令行完成脚本将自动注册到你的 shell 中。|
| |如果你使用 Homebrew 或 MacPorts 安装 Spring 启动 CLI,那么命令行完成脚本将自动注册到你的 shell 中。|
|---|---------------------------------------------------------------------------------------------------------------------------------------------------|
#### 3.2.6.Windows Scoop 安装
......@@ -184,7 +184,7 @@ $ spring <HIT TAB HERE>
Scoop 将`spring`安装到`~/scoop/apps/springboot/current/bin`
| |如果你没有看到应用程序清单,那么你安装的 Scoop 可能已经过期。<br/>在这种情况下,运行`scoop update`,然后再试一次。|
| |如果你没有看到应用程序清单,那么你的 Scoop 安装可能已经过期。<br/>在这种情况下,运行`scoop update`,然后再试一次。|
|---|----------------------------------------------------------------------------------------------------------------------------------------|
#### 3.2.7.快速启动 Spring CLI 示例
......@@ -223,7 +223,7 @@ Hello World!
这一部分描述了如何开发一个小型的“Hello World!”Web 应用程序,该应用程序突出了 Spring Boot 的一些关键功能。我们使用 Maven 来构建这个项目,因为大多数 IDE 都支持它。
| |[spring.io](https://spring.io)网站包含许多使用 Spring 引导的“入门”[guides](https://spring.io/guides)<br/>如果需要解决特定问题,首先检查那里。<br/><br/>你可以通过转到[start.spring.io](https://start.spring.io)并从依赖项搜索器中选择“web”启动器来缩短以下步骤。<br/>这样做会生成一个新的项目结构,以便你可以[立即开始编码](#getting-started.first-application.code)<br/>检查[start.spring.io user guide](https://github.com/spring-io/start.spring.io/blob/main/USING.adoc)以获取更多详细信息。|
| |[spring.io](https://spring.io)网站包含许多使用 Spring 引导的“入门”[guides](https://spring.io/guides)<br/>如果你需要解决特定的问题,首先检查那里。<br/><br/>你可以通过转到[start.spring.io](https://start.spring.io)并从依赖项搜索器中选择“web”启动器来快捷下面的步骤。<br/>这样做会生成一个新的项目结构,这样你就可以[立即开始编码](#getting-started.first-application.code)<br/>检查[start.spring.io user guide](https://github.com/spring-io/start.spring.io/blob/main/USING.adoc)以获取更多详细信息。|
|---|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
在开始之前,打开一个终端并运行以下命令,以确保安装了有效的 Java 和 Maven 版本:
......@@ -272,12 +272,12 @@ Java version: 1.8.0_102, vendor: Oracle Corporation
前面的列表应该为你提供一个可工作的构建。你可以通过运行`mvn package`来测试它(目前,你可以忽略“ jar 将为空-没有内容被标记为包含!”警告)。
| |此时,你可以将项目导入到 IDE 中(大多数现代 Java IDE 都包含对 Maven 的内置支持)。<br/>为了简单起见,我们将继续在此示例中使用纯文本编辑器。|
| |此时,你可以将项目导入到 IDE 中(大多数现代 Java IDE 都包含对 Maven 的内置支持)。<br/>为了简单起见,我们在这个示例中继续使用纯文本编辑器。|
|---|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
### 4.2.添加 Classpath 依赖项
Spring Boot 提供了许多“启动器”,允许你将罐子添加到你的 Classpath。我们的烟雾测试应用程序使用 POM 中`parent`部分中的`spring-boot-starter-parent``spring-boot-starter-parent`是一种特殊的启动器,它提供了有用的 Maven 默认值。它还提供了[“扶养-管理”](using.html#using.build-systems.dependency-management)节,以便你可以省略“有福的”依赖项的`version`标记
Spring Boot 提供了许多“启动器”,允许你将罐子添加到你的 Classpath。我们的烟雾测试应用程序使用 POM 中`parent`部分中的`spring-boot-starter-parent``spring-boot-starter-parent`是一种特殊的启动器,它提供了有用的 Maven 默认值。它还提供了一个[`dependency-management`](使用.html#using.build-systems.dependency-management)部分,这样你就可以省略`version`标记来表示“有福的”依赖关系
其他“启动器”提供了在开发特定类型的应用程序时可能需要的依赖关系。因为我们正在开发一个 Web 应用程序,所以我们添加了一个`spring-boot-starter-web`依赖项。在此之前,我们可以通过运行以下命令查看当前的内容:
......@@ -287,7 +287,7 @@ $ mvn dependency:tree
[INFO] com.example:myproject:jar:0.0.1-SNAPSHOT
```
`mvn dependency:tree`命令打印项目依赖关系的树表示。你可以看到`spring-boot-starter-parent`本身不提供依赖关系。要添加必要的依赖关系,请编辑`pom.xml`,并在`parent`部分下面添加`spring-boot-starter-web`依赖关系
`mvn dependency:tree`命令打印项目依赖关系的树表示。你可以看到`spring-boot-starter-parent`本身不提供依赖关系。要添加必要的依赖项,请编辑`pom.xml`,并在`parent`部分下面添加`spring-boot-starter-web`依赖项
```
<dependencies>
......@@ -333,9 +333,9 @@ public class MyApplication {
我们的`MyApplication`类的第一个注释是`@RestController`。这被称为*刻板印象*注释。它为阅读代码的人提供了提示,并为 Spring 提供了类扮演特定角色的提示。在这种情况下,我们的类是一个 Web`@Controller`,因此 Spring 在处理传入的 Web 请求时考虑它。
`@RequestMapping`注释提供了“路由”信息。它告诉 Spring 任何带有`/`路径的 HTTP 请求都应该映射到`home`方法。`@RestController`注释告诉 Spring 将生成的字符串直接呈现给调用方。
`@RequestMapping`注释提供了“路由”信息。它告诉 Spring任何带有`/`路径的 HTTP 请求都应该映射到`home`方法。`@RestController`注释告诉 Spring 将生成的字符串直接呈现给调用方。
| |`@RestController``@RequestMapping`注释是 Spring MVC 注释(它们不特定于 Spring 引导)。<br/>有关更多详细信息,请参见 Spring 参考文档中的[MVC section](https://docs.spring.io/spring-framework/docs/5.3.16/reference/html/web.html#mvc)。|
| |`@RestController``@RequestMapping`注释是 Spring MVC 注释(它们不特定于 Spring 引导)。<br/>有关更多详细信息,请参见 Spring 参考文档中的[MVC 部分](https://docs.spring.io/spring-framework/docs/5.3.16/reference/html/web.html#mvc)。|
|---|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
#### 4.3.2.@enableAutoConfiguration 注释 ###
......@@ -348,7 +348,7 @@ public class MyApplication {
#### 4.3.3.“主”法
我们应用程序的最后一部分是`main`方法。对于应用程序入口点,这是一种遵循 Java 约定的标准方法。通过调用`run`,我们的主方法委托给 Spring boot 的`SpringApplication`类。`SpringApplication` 引导我们的应用程序,启动 Spring,然后启动自动配置的 Tomcat Web 服务器。我们需要将`MyApplication.class`作为参数传递给`run`方法,以告诉`SpringApplication`哪个是主要的 Spring 组件。还会传递`args`数组,以公开任何命令行参数。
我们应用程序的最后一部分是`main`方法。对于应用程序入口点,这是一种遵循 Java 约定的标准方法。我们的主方法通过调用`run`来委托 Spring boot 的`SpringApplication`类。`SpringApplication`引导我们的应用程序,启动 Spring,然后启动自动配置的 Tomcat Web 服务器。我们需要将`MyApplication.class`作为参数传递给`run`方法,以告诉`SpringApplication`哪个是主要的 Spring 组件。还通过`args`数组公开任何命令行参数。
### 4.4.运行示例
......@@ -403,10 +403,10 @@ Spring boot 需要[不同的方法](executable-jar.html#appendix.executable-jar)
</build>
```
| |`spring-boot-starter-parent` POM 包括`<executions>`配置以绑定`repackage`目标。<br/>如果不使用父 POM,则需要自己声明此配置。<br/>详情请参见[插件文档](https://docs.spring.io/spring-boot/docs/2.6.4/maven-plugin/reference/htmlsingle/#getting-started)。|
| |`spring-boot-starter-parent` POM 包括`<executions>`配置,以绑定`repackage`目标。<br/>如果不使用父 POM,则需要自己声明此配置。<br/>有关详细信息,请参见[插件文档](https://docs.spring.io/spring-boot/docs/2.6.4/maven-plugin/reference/htmlsingle/#getting-started)。|
|---|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
保存`pom.xml`并从命令行运行`mvn package`,如下所示:
保存`pom.xml`并从命令行运行`mvn package`,如下所示:
```
$ mvn package
......@@ -454,8 +454,8 @@ $ java -jar target/myproject-0.0.1-SNAPSHOT.jar
和前面一样,要退出应用程序,请按`ctrl-c`
## 5. 接下来读什么?
## 5. 接下来读什么?
希望这一部分提供了一些 Spring 引导基础知识,并帮助你编写自己的应用程序。如果你是一位面向任务类型的开发人员,那么你可能希望跳到[spring.io](https://spring.io),并遵循一些[getting started](https://spring.io/guides/)指南,这些指南解决了特定的“我如何使用 Spring?”问题。我们还有 Spring 特定于引导的“[How-to](howto.html#howto)”参考文档。
希望这一部分提供了一些 Spring 引导基础知识,并帮助你编写自己的应用程序。如果你是一位面向任务类型的开发人员,你可能希望跳到[spring.io](https://spring.io),并遵循一些[开始](https://spring.io/guides/)指南,这些指南解决了特定的“如何使用 Spring?”问题。我们还有 Spring 特定于引导的“[How-to](howto.html#howto)”参考文档。
否则,下一个逻辑步骤是读取*[using.html](using.html#using)*。如果你真的不耐烦了,你也可以跳到前面去读*[Spring Boot features](features.html#features)*
否则,下一个逻辑步骤是读取 *[using.html](using.html#using)*。如果你真的不耐烦了,你也可以跳到前面去读关于 *[Spring Boot features](features.html#features)* 的文章
此差异已折叠。
此差异已折叠。
此差异已折叠。
# 升级 Spring 引导
在项目[wiki](https://github.com/spring-projects/spring-boot/wiki)上提供了如何从 Spring 启动的早期版本升级的说明。按照[release notes](https://github.com/spring-projects/spring-boot/wiki#release-notes)部分中的链接查找要升级到的版本。
在项目[wiki](https://github.com/spring-projects/spring-boot/wiki)上提供了如何从 Spring 启动的早期版本升级的说明。按照[发行说明](https://github.com/spring-projects/spring-boot/wiki#release-notes)部分中的链接查找要升级到的版本。
升级说明总是发布说明中的第一项。如果你落后于多个版本,请确保你还查看了跳过的版本的发布说明。
## 1. 从 1.x 升级
如果你正在从 Spring 启动的`1.x`版本进行升级,请检查提供详细升级说明的[维基项目中的“迁移指南”](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide)。还可以在[release notes](https://github.com/spring-projects/spring-boot/wiki)中查看每个版本的“新的和值得注意的”特性列表。
如果你正在从 Spring 启动的`1.x`版本进行升级,请检查提供详细升级说明的[维基项目中的“迁移指南”](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide)。还可以在[发行说明](https://github.com/spring-projects/spring-boot/wiki)中查看每个版本的“新的和值得注意的”特性列表。
## 2. 升级到新的功能版本
......@@ -30,7 +30,7 @@
要升级现有的 CLI 安装,请使用适当的 PackageManager 命令(例如,<gtr="8"/>)。如果你手动安装了 CLI,请按照[标准说明](getting-started.html#getting-started.installing.cli.manual-installation),记住更新你的`PATH`环境变量,以删除任何旧的引用。
## 4. 接下来读什么?
## 4. 接下来读什么?
一旦你决定升级你的应用程序,你可以在文档的其余部分找到关于特定功能的详细信息。
......
此差异已折叠。
此差异已折叠。
# Spring 云
\ No newline at end of file
# Spring Cloud
\ No newline at end of file
# Spring 云文档
本节提供了 Spring 云参考文档的简要概述。它是这份文件其余部分的一张地图。
## [](#documentation-about)[1.关于文档](#documentation-about)
Spring 云参考指南如下所示
* [Multi-page HTML](https://docs.spring.io/spring-cloud/docs/2021.0.1/reference/html)
* [单页 HTML](https://docs.spring.io/spring-cloud/docs/2021.0.1/reference/htmlsingle)
* [PDF](https://docs.spring.io/spring-cloud/docs/2021.0.1/reference/pdf/spring-cloud.pdf)
本文件的副本可供你自己使用并分发给他人,但前提是你不对此类副本收取任何费用,并且还需每一份副本均包含本版权声明,无论是以印刷形式还是以电子方式分发。
## [](#documentation-getting-help)[2. Getting Help](#documentation-getting-help)
如果你在云计算方面有困难,我们愿意提供帮助。
* 学习云的基础知识。如果你从 Spring Cloud 开始,请尝试使用[guides](https://spring.io/guides)中的一个。
* 问一个问题。我们监控[stackoverflow.com](https://stackoverflow.com)中带有[`spring-cloud`](https://stackoverflow.com/tags/spring-cloud)标记的问题。
*[Spring Cloud Gitter](https://gitter.im/spring-cloud/spring-cloud)与我们聊天
| |所有的云都是开源的,包括文档。如果你发现<br/>DOCS 存在问题,或者你希望改进这些问题,请参与进来。|
|---|------------------------------------------------------------------------------------------------------------------------------------------------------------|
......@@ -5,3 +5,5 @@
版权所有 2012-2020
本文件的副本可供你自己使用并分发给他人,但前提是你不对此类副本收取任何费用,并且还需每一份副本均包含本版权声明,无论是以印刷形式还是以电子方式分发。
如果{{{i[’GoogleAnalyticsObject’]=r;i[r]=i[r]|function(){q=i[r].push(参数)},i[r].l=1\*new date();a=s.createElement(o),m=s.getelementsbyName(0);a.parentsName(1);a.A.SRC=g;m.M.analytnode(gua,m.com.com);(google=document=’,’,’’’’’’’’),’documents’,’’.’’’’’’’’’’’,’’’’’’
\ No newline at end of file
# Spring 构建
# Spring Cloud构建
Spring 云构建是 Spring 云用于插件和依赖管理的一个常见实用程序项目。
Spring Cloud构建是 Spring Cloud用于插件和依赖管理的一个常见实用程序项目。
## [构建和部署](#_building_and_deploying)
要在本地安装:
```
......@@ -38,8 +36,7 @@ $ mvn deploy -P central -DaltReleaseDeploymentRepository=sonatype-nexus-staging:
(“central”profile 可用于 Spring Cloud 中的所有项目,并且它设置了 GPG jar 签名,并且存储库必须为该项目单独指定,因为它是启动器父程序的父程序,用户反过来将其作为自己的父程序)。
## [Contributing](#_contributing)
## [贡献](#_contributing)
Spring Cloud 是在非限制性的 Apache2.0 许可下发布的,遵循非常标准的 GitHub 开发流程,使用 GitHub Tracker 处理问题,并将拉请求合并到 Master 中。如果你想贡献一些微不足道的东西,请不要犹豫,但要遵循下面的指导方针。
......@@ -47,21 +44,21 @@ Spring Cloud 是在非限制性的 Apache2.0 许可下发布的,遵循非常
在我们接受一个重要的补丁或拉请求之前,我们需要你签署[贡献者许可协议](https://cla.pivotal.io/sign/spring)。签署贡献者协议并不会授予任何人对主库的提交权限,但这确实意味着我们可以接受你的贡献,并且如果我们接受了,你将获得作者信用。活跃的贡献者可能会被要求加入核心团队,并被赋予合并拉请求的能力。
### [Code of Conduct](#_code_of_conduct)
### [行为守则](#_code_of_conduct)
该项目遵守贡献者契约[code of conduct](https://github.com/spring-cloud/spring-cloud-build/blob/master/docs/src/main/asciidoc/code-of-conduct.adoc)。通过参与,你将被期望坚持这一准则。请向[[电子邮件保护]]报告不可接受的行为(/cdn-cgi/l/email-protection#98ebe8EAF 1f6ffb5fbf7fcfdb5fbf7fbf6fcedfbecd8e8f1eeef7ECF 9f4b6f1f7)。
该项目遵守贡献者契约[行为守则](https://github.com/spring-cloud/spring-cloud-build/blob/master/docs/src/main/asciidoc/code-of-conduct.adoc)。通过参与,你将被期望坚持这一准则。请向[[电子邮件保护]]报告不可接受的行为(/cdn-cgi/l/email-protection#DBA8aba9b2b5bcf6b8b4bfbef6b4bdf6b8b8b4b5bfaeb8af9babb2adb4afbab7f5b2b4)。
### [守则惯例和内部管理](#_code_conventions_and_housekeeping)
这些都不是拉请求所必需的,但它们都会有所帮助。它们也可以在原始的拉请求之后但在合并之前添加。
* 使用 Spring 框架代码格式约定。如果使用 Eclipse,则可以使用[Spring Cloud Build](https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-dependencies-parent/eclipse-code-formatter.xml)项目中的 `eclipse-code-formatter.xml’文件导入格式化设置。如果使用 IntelliJ,可以使用[Eclipse 代码格式化插件](https://plugins.jetbrains.com/plugin/6546)导入相同的文件。
* 使用 Spring 框架代码格式约定。如果使用 Eclipse,则可以使用`eclipse-code-formatter.xml`文件从[Spring Cloud Build](https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-dependencies-parent/eclipse-code-formatter.xml)项目导入格式化设置。如果使用 IntelliJ,可以使用[Eclipse 代码格式化插件](https://plugins.jetbrains.com/plugin/6546)导入相同的文件。
* 确保所有新的`.java`文件都有一个简单的 Javadoc 类注释,其中至少有一个“@author”标记来标识你,并且最好至少有一个段落来说明这个类的目的
* 确保所有新的`.java`文件都有一个简单的 Javadoc 类注释,其中至少有一个`@author`标记来标识你,并且最好至少有一个段落来说明类的用途
* 将 ASF 许可标头注释添加到所有新的`.java`文件(从项目中的现有文件复制)
* 将自己作为`@author`添加到要进行实质性修改的.java 文件中(不仅仅是外观上的更改)。
* 将自己作为`@author`添加到要进行实质性修改的.java 文件中(不仅仅是外观上的更改)。
* 添加一些 Javadocs,如果你更改了名称空间,还可以添加一些 XSDDOC 元素。
......@@ -71,9 +68,9 @@ Spring Cloud 是在非限制性的 Apache2.0 许可下发布的,遵循非常
* 在编写提交消息时,请遵循[这些约定](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html),如果你正在修复现有的问题,请在提交消息的末尾添加`Fixes gh-XXXX`(其中 xxxx 是问题编号)。
### [checkstyle](#_checkstyle)
### [Checkstyle](#_checkstyle)
Spring 构建附带了一组 checkstyle 规则。你可以在`spring-cloud-build-tools`模块中找到它们。该模块下最值得注意的文件是:
Spring Cloud构建附带了一组 checkstyle 规则。你可以在`spring-cloud-build-tools`模块中找到它们。该模块下最值得注意的文件是:
Spring-云构建工具/
......@@ -137,7 +134,7 @@ POM.xml
|**4**|添加 Spring Java 格式插件,该插件将重新格式化你的代码,以传递大多数 CheckStyle 格式设置规则|
|**5**|将 CheckStyle 插件添加到构建和报告阶段|
如果你需要抑制一些规则(例如行长需要更长),那么在`${project.root}/src/checkstyle/checkstyle-suppressions.xml`下定义一个文件就足够了。示例:
如果你需要抑制一些规则(例如行长需要更长),那么在`${project.root}/src/checkstyle/checkstyle-suppressions.xml`下定义一个文件就足够了。示例:
projectRoot/SRC/checkstyle/checkstyle-suppresions.xml
......@@ -161,7 +158,7 @@ $ touch .springformat
### [IDE setup](#_ide_setup)
#### [Intellij IDEA](#_intellij_idea)
#### [Intellij 思想](#_intellij_idea)
为了设置 IntelliJ,你应该导入我们的编码约定、检查配置文件并设置 CheckStyle 插件。以下文件可以在[Spring Cloud Build](https://github.com/spring-cloud/spring-cloud-build/tree/master/spring-cloud-build-tools)项目中找到。
......@@ -205,7 +202,7 @@ Checkstyle
![Checkstyle](https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/docs/src/main/asciidoc/images/intellij-checkstyle.png)
转到`File``Settings``Other settings``Checkstyle`。点击`Configuration file`部分中的`+`图标。在这里,你必须定义应该从哪里选择 CheckStyle 规则。在上面的图片中,我们从克隆的云构建存储库中选择了规则。但是,你可以指向 Spring Cloud Build 的 GitHub 存储库(例如`checkstyle.xml`:`[https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle.xml](https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle.xml)`)。我们需要提供以下变量:
转到`File``Settings``Other settings``Checkstyle`。点击`+`区域中的`Configuration file`图标。在这里,你必须定义应该从哪里选择 CheckStyle 规则。在上面的图片中,我们从克隆的云构建存储库中选择了规则。但是,你可以指向 Spring Cloud Build 的 GitHub 存储库(例如`checkstyle.xml`:`[https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle.xml](https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle.xml)`)。我们需要提供以下变量:
* `checkstyle.header.file`-请将其指向 Spring Cloud Build 的`spring-cloud-build-tools/src/main/resources/checkstyle-header.txt`文件,可以在你的克隆 repo 中,也可以通过`[https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt](https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt)`URL。
......@@ -213,18 +210,18 @@ Checkstyle
* `checkstyle.additional.suppressions.file`-此变量对应于本地项目中的抑制。例如,你正在处理`spring-cloud-contract`。然后指向`project-root/src/checkstyle/checkstyle-suppressions.xml`文件夹。`spring-cloud-contract`的例子是:`/home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml`
| |记住将`Scan Scope`设置为`All sources`,因为我们为生产和测试源应用了 checkstyle 规则。|
| |记住将`Scan Scope`设置为`All sources`,因为我们为生产和测试源应用了 checkstyle 规则。|
|---|------------------------------------------------------------------------------------------------------------------|
### [重复查找器](#_duplicate_finder)
Spring 构建带来了`basepom:duplicate-finder-maven-plugin`,它允许在 Java Classpath 上标记重复的和冲突的类和资源。
Spring Cloud构建带来了`basepom:duplicate-finder-maven-plugin`,它允许在 Java Classpath 上标记重复的和冲突的类和资源。
#### [重复查找器配置](#_duplicate_finder_configuration)
重复查找器是**默认启用**,将在 Maven 构建的`verify`阶段运行,但是只有在项目的`duplicate-finder-maven-plugin`部分中添加`duplicate-finder-maven-plugin`,它才会在项目中生效。
重复查找器是**默认启用**,将在 Maven 构建的`verify`阶段运行,但是只有在`duplicate-finder-maven-plugin`添加到项目的`build`部分`POM.xml`,它才会在项目中生效。
POM.xml
pom.xml
```
<build>
......@@ -265,8 +262,7 @@ POM.xml
## [压平 Poms](#_flattening_the_poms)
为了避免传播构建 Spring 云项目所需的构建设置,我们使用了 Maven Flaten 插件。它的优点是允许你在将“Clean” POM 发布到存储库时使用所需的任何功能。
为了避免传播构建 Spring Cloud项目所需的构建设置,我们使用了 Maven Flaten 插件。它的优点是允许你在将“Clean” POM 发布到存储库时使用所需的任何功能。
为了添加它,将`org.codehaus.mojo:flatten-maven-plugin`添加到你的`pom.xml`中。
......@@ -283,8 +279,7 @@ POM.xml
## [重用文档](#_reusing_the_documentation)
Spring Cloud Build 发布其`spring-cloud-build-docs`模块,该模块包含有用的脚本(例如 Readme Generation Ruby 脚本)和用于 Spring 云文档的 CSS、XSLT 和图像。如果你想遵循生成文档的相同约定方法,只需将这些插件添加到`docs`模块中
Spring Cloud Build 发布其`spring-cloud-build-docs`模块,该模块包含有用的脚本(例如 Readme Generation Ruby 脚本)和用于 Spring Cloud文档的 CSS、XSLT 和图像。如果你想遵循生成文档的相同约定方法,只需将这些插件添加到`docs`模块中
```
<properties>
......@@ -345,7 +340,7 @@ Spring Cloud Build 发布其`spring-cloud-build-docs`模块,该模块包含有
如果你想修改将哪些配置属性放入表中,你可以调整`configprops.inclusionPattern`模式,以仅包括属性的一个子集(例如`<configprops.inclusionPattern>spring.sleuth.*</configprops.inclusionPattern>`)。
Spring 构建 DOCS 附带了一组可以重用的 ASCIIDoctor 属性。
Spring Cloud构建 DOCS 附带了一组可以重用的 ASCIIDoctor 属性。
```
<attributes>
......@@ -391,7 +386,6 @@ Spring 云构建 DOCS 附带了一组可以重用的 ASCIIDoctor 属性。
## [更新指南](#_updating_the_guides)
我们假设你的项目包含`guides`文件夹下的指南。
```
......@@ -421,3 +415,5 @@ $ ./mvnw clean deploy -Pguides
通过不添加`guides`配置文件,或者在打开配置文件时传递`-DskipGuides`系统属性,你可以跳过此操作。
你可以通过`guides-project.version`(默认为`${project.version}`)配置传递给指南的项目版本。指南更新的阶段可以通过`guides-update.phase`进行配置(默认为`deploy`)。
如果{{{i[’GoogleAnalyticsObject’]=r;i[r]=i[r]|function(){q=i[r].push(参数)},i[r].l=1\*new date();a=s.createElement(o),m=s.getelementsbyName(0);a.parentsName(1);a.A.SRC=g;m.M.analytnode(gua,m.com.com);(google=document=’,’,’’’’’’’’),’documents’,’’.’’’’’’’’’’’,’’’’’’
\ No newline at end of file
# Spring 引导云 CLI
Spring Boot CLI 为[Spring Boot](https://projects.spring.io/spring-boot)提供了[Spring Cloud](https://github.com/spring-cloud)命令行功能。你可以编写 Groovy 脚本来运行 Spring Cloud组件应用程序(例如`@EnableEurekaServer`)。你还可以轻松地进行加密和解密等操作,以支持具有秘密配置值的云配置客户机。通过 Launcher CLI,你可以方便地从命令行同时启动像 Eureka、Zipkin、Config Server 这样的服务(在开发时非常有用)。
Spring Boot CLI 为[Spring Boot](https://projects.spring.io/spring-boot)提供了[Spring Cloud](https://github.com/spring-cloud)命令行功能。你可以编写 Groovy 脚本来运行 Spring 云组件应用程序(例如`@EnableEurekaServer`)。你还可以轻松地进行加密和解密等操作,以支持具有秘密配置值的云配置客户机。通过 Launcher CLI,你可以方便地从命令行同时启动像 Eureka、Zipkin、Config Server 这样的服务(在开发时非常有用)。
| |Spring 云是在非限制性的 Apache2.0 许可下发布的。如果你想对文档的这一部分做出贡献,或者你发现了一个错误,请在[github](https://github.com/spring-cloud/spring-cloud-cli)上找到项目中的源代码和问题追踪器。|
| |Spring Cloud是在非限制性的 Apache2.0 许可下发布的。如果你想对文档的这一部分做出贡献,或者你发现了一个错误,请在[github](https://github.com/spring-cloud/spring-cloud-cli)上找到项目中的源代码和问题追踪器。|
|---|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
## [Installation](#_installation)
## [安装](#_installation)
要安装,请确保你有[Spring Boot CLI](https://github.com/spring-projects/spring-boot)(2.0.0 或更好):
......@@ -22,14 +21,14 @@ $ sdk install springboot 2.2.3.RELEASE
$ sdk use springboot 2.2.3.RELEASE
```
并安装 Spring 插件
并安装 Spring Cloud插件
```
$ mvn install
$ spring install org.springframework.cloud:spring-cloud-cli:2.2.0.RELEASE
```
| |**先决条件:**要使用加密和解密功能<br/>,你需要在你的 JVM 中安装全强度 JCE(默认情况下不存在)。<br/>你可以从 Oracle 下载“Java Cryptography Extension(JCE)Unlimited Strength Juridictory Policy Files”<br/>,并遵循安装说明(基本上将 JRElib/security 目录中的 2Policy 文件<br/>替换为你下载的文件)。|
| |**先决条件:**要使用加密和解密功能<br/>,你需要在你的 JVM 中安装全强度 JCE(默认情况下不存在)。<br/>你可以从 Oracle 下载“Java Cryptography Extension(JCE)Unlimited Strength Juridictory Policy Files”<br/>,并遵循安装说明(基本上将 JRElib/security 目录中的 2 个策略文件<br/>替换为你下载的文件)。|
|---|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
## [Running Spring Cloud Services in Development](#_running_spring_cloud_services_in_development)
......@@ -52,7 +51,7 @@ $ spring cloud eureka configserver h2 kafka stubrunner zipkin
| zipkin | Zipkin Server | [http://localhost:9411](http://localhost:9411) |Zipkin 服务器与 UI 可视化的痕迹。存储在内存中的跨数据,并通过 JSON 数据的 HTTP POST 接受它们。|
| stubrunner |Stub Runner Boot| [http://localhost:8750](http://localhost:8750) |下载 WiRemock 存根,启动 WiRemock,并用存储的存根向启动的服务器提供信息。传递`stubrunner.ids`以传递存根坐标,然后转到`[http://localhost:8750/stubs](http://localhost:8750/stubs)`。|
可以使用同名的本地 YAML 文件(在当前工作目录或名为“config”的子目录中或在`~/.spring-cloud`中)配置这些应用程序。例如,在`configserver.yml`中,你可能想要执行这样的操作来为后端定位一个本地 Git 存储库:
这些应用程序中的每一个都可以使用同名的本地 YAML 文件进行配置(在当前工作目录或名为“config”的子目录中或在`~/.spring-cloud`中)。例如,在`configserver.yml`中,你可能想做这样的事情来为后端定位一个本地 Git 存储库:
configserver.yml
......@@ -80,7 +79,7 @@ stubrunner:
### [添加其他应用程序](#_adding_additional_applications)
可以将其他应用程序添加到`./config/cloud.yml`不是 `./config.yml`,因为这将替换缺省值),例如使用
可以将其他应用程序添加到`./config/cloud.yml`而不是`./config.yml`,因为这将替换默认值),例如使用
config/cloud.yml
......@@ -108,7 +107,7 @@ source sink configserver dataflow eureka h2 kafka stubrunner zipkin
## [编写 Groovy 脚本并运行应用程序](#_writing_groovy_scripts_and_running_applications)
Spring 云 CLI 具有对 Spring 云的大多数声明性功能的支持,例如`@Enable*`类的注释。例如,这里有一个功能齐全的 Eureka 服务器
Spring Cloud CLI 具有对 Spring Cloud的大多数声明性功能的支持,例如`@Enable*`类的注释。例如,这里有一个功能齐全的 Eureka 服务器
App.Groovy
......@@ -123,7 +122,7 @@ class Eureka {}
$ spring run app.groovy
```
要包含额外的依赖关系,通常只需添加适当的支持特性的注释就足够了,例如`@EnableConfigServer``@enableOAuth2SSO’或`@EnableEurekaClient`。要手动包含依赖项,你可以使用`@Grab`和特殊的“ Spring 引导”短样式工件坐标,即只使用工件 ID(不需要组或版本信息),例如,设置一个客户端应用程序,以便在 AMQP 上监听来自 Spring 云总线的管理事件:
要包含额外的依赖关系,通常只需添加适当的支持特性的注释就足够了,例如`@EnableConfigServer``@EnableOAuth2Sso``@EnableEurekaClient`。要手动包含依赖项,你可以使用`@Grab`和特殊的“ Spring 引导”短样式工件坐标,即只使用工件 ID(不需要组或版本信息),例如,设置一个客户端应用程序,以便在 AMQP 上监听来自 Spring Cloud总线的管理事件:
App.Groovy
......@@ -138,7 +137,7 @@ class Service {
## [加密和解密](#_encryption_and_decryption)
Spring cloud cli 带有一个“加密”和一个“解密”命令。两者都接受相同形式的参数,并将键指定为强制性的“--key”,例如。
Spring cloud cli 带有一个“加密”和一个“解密”命令。两者都接受相同形式的参数,其中一个键被指定为强制性的“--key”,例如。
```
$ spring encrypt mysecret --key foo
......@@ -153,3 +152,5 @@ mysecret
$ spring encrypt mysecret --key @${HOME}/.ssh/id_rsa.pub
AQAjPgt3eFZQXwt8tsHAVv/QHiY5sI2dRcR+...
```
如果{{{i[’GoogleAnalyticsObject’]=r;i[r]=i[r]|function(){q=i[r].push(参数)},i[r].l=1\*new date();a=s.createElement(o),m=s.getelementsbyName(0);a.parentsName(1);a.A.SRC=g;m.M.analytnode(gua,m.com.com);(google=document=’,’,’’’’’’’’),’documents’,’’.’’’’’’’’’’’,’’’’’’
\ No newline at end of file
# Spring Cloud for Cloud Foundry
Spring Cloud for CloudFoundry 使得在[Cloud Foundry](https://github.com/cloudfoundry)(平台即服务)中运行[Spring Cloud](https://github.com/spring-cloud)应用程序变得很容易。Cloud Foundry 有一个“服务”的概念,这是一个可以“绑定”到应用程序的中间软件,本质上为它提供了一个包含凭据的环境变量(例如,用于服务的位置和用户名)。
`spring-cloud-cloudfoundry-commons`模块配置了基于反应堆的 Cloud Foundry Java 客户端 V3.0,并且可以独立使用。
`spring-cloud-cloudfoundry-web`项目为 Cloud Foundry 中 WebApps 的一些增强功能提供了基本支持:自动绑定到单点登录服务,并可选地为发现启用粘性路由。
`spring-cloud-cloudfoundry-discovery`项目提供了 Spring Cloud Commons`DiscoveryClient`的实现,因此你可以 `@enableDiscoveryClient’并提供你的凭据为 ` Spring.cloud.cloudfoundry.Discovery.[username,password]`(如果你没有连接到[Pivotal Web 服务](https://run.pivotal.io),也可以`*.url`),然后你可以直接使用`DiscoveryClient`,或者通过`LoadBalancerClient`
`spring-cloud-cloudfoundry-discovery`项目提供了 Spring Cloud Commons`DiscoveryClient`的实现,因此你可以`@EnableDiscoveryClient`并提供你的凭据为`spring.cloud.cloudfoundry.discovery.[username,password]`(如果你没有连接到[Pivotal Web 服务](https://run.pivotal.io),也可以`*.url`),然后你可以直接使用`DiscoveryClient`,或者通过`LoadBalancerClient`
第一次使用 Discovery 客户机时,由于它必须从 Cloud Foundry 获得一个访问令牌,因此它可能会比较慢。
## [](#discovery)[1. Discovery](#discovery)
## [](#discovery)[1.发现](#discovery)
以下是一款带有 Cloud Foundry Discovery 的 Spring 应用:
以下是一款带有 Cloud Foundry Discovery 的 Spring Cloud应用:
App.Groovy
......@@ -47,12 +46,13 @@ $ cf push -p app.jar
## [](#single-sign-on)[2.单点登录](#single-sign-on)
| |在版本 1.3 中,所有的 OAuth2SSO 和资源服务器功能都移到了 Spring boot<br/>。你可以在[Spring Boot user guide](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/)中找到文档。|
| |在版本 1.3 中,所有的 OAuth2SSO 和资源服务器功能都移到了 Spring boot<br/>。你可以在[Spring Boot user guide](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/)中找到文档。|
|---|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
该项目提供了从 CloudFoundry 服务凭据到 Spring 启动特性的自动绑定。例如,如果你有一个名为“SSO”的 CloudFoundry 服务,其凭据中包含“client\_id”、“client\_secret”和“auth\_domain”,那么它将自动绑定到你用 `@enableoAuth2SSO’启用的 Spring OAuth2 客户端(从 Spring 启动)。服务的名称可以使用`spring.oauth2.sso.serviceId`进行参数化。
该项目提供了从 CloudFoundry 服务凭据到 Spring 启动特性的自动绑定。例如,如果你有一个名为“SSO”的 CloudFoundry 服务,其凭据包含“client\_id”、“client\_secret”和“auth\_domain”,那么它将自动绑定到你通过`@EnableOAuth2Sso`(从 Spring 启动)启用的 Spring OAuth2 客户端。服务的名称可以使用`spring.oauth2.sso.serviceId`进行参数化。
## [](#configuration)[3.配置](#configuration)
要查看所有 Spring Cloud Foundry 相关配置属性的列表,请检查[附录页](appendix.html)
如果{{{i[’GoogleAnalyticsObject’]=r;i[r]=i[r]|function(){q=i[r].push(参数)},i[r].l=1\*new date();a=s.createElement(o),m=s.getelementsbyName(0);a.parentsName(1);a.A.SRC=g;m.M.analytnode(gua,m.com.com);(google=document=’,’,’’’’’’’’),’documents’,’’.’’’’’’’’’’’,’’’’’’
\ No newline at end of file
Spring 云合同参考文档
==========
# Spring Cloud 合同参考文档
Adam Dudczak,Mathias Düsterhöft,Marcin Grzejszczak,Dennis Kieselhorst,Jakub Kubry Ski,Karol Lassak,Olga Maciaszek-Sharma,Mariusz Smyku A,DAVESyer,Jay Bryant
......@@ -9,9 +8,10 @@ Adam Dudczak,Mathias Düsterhöft,Marcin Grzejszczak,Dennis Kieselhorst,
|----------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
|[Documentation Overview](documentation-overview.html#contract-documentation)|关于文档,获得帮助,第一步,等等。|
| [Getting Started](getting-started.html#getting-started) |引入 Spring Cloud Contract,开发你的第一个 Spring 基于 Cloud Contract 的应用程序|
| [Using Spring Cloud Contract](using.html#using) |Spring 合同使用示例和工作流程。|
| [Using Spring Cloud Contract](using.html#using) |Spring Cloud合同使用示例和工作流程。|
| [Spring Cloud Contract Features](project-features.html#features) |Contract DSL、消息传递、 Spring Cloud Contract Stub Runner 和 Spring Cloud Contract WiRemock。|
| [Build Tools](project-features.html#features-build-tools) |Maven 插件, Gradle 插件和 Docker。|
| [“How-to” Guides](howto.html#howto) |存根版本控制,契约集成,调试等。|
| [Appendices](appendix.html#appendix) |属性、元数据、配置、依赖关系等等。|
如果{{{i[’GoogleAnalyticsObject’]=r;i[r]=i[r]|function(){q=i[r].push(参数)},i[r].l=1\*new date();a=s.createElement(o),m=s.getelementsbyName(0);a.parentsName(1);a.A.SRC=g;m.M.analytnode(gua,m.com.com);(google=document=’,’,’’’’’’’’),’documents’,’’.’’’’’’’’’’’,’’’’’’
\ No newline at end of file
Spring 云功能参考文档
==========
# Spring Cloud 功能参考文档
Mark Fisher,DAVESyer,Oleg Zhurakousky,Anshul Mehra
......@@ -7,16 +6,17 @@ Mark Fisher,DAVESyer,Oleg Zhurakousky,Anshul Mehra
参考文献包括以下部分:
|[Reference Guide](spring-cloud-function.html)|Spring Cloud Function Reference|
|[参考指南](spring-cloud-function.html)|Spring Cloud Function Reference|
|------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|
|[Cloud Events](https://github.com/spring-cloud/spring-cloud-function/tree/master/spring-cloud-function-samples/function-sample-cloudevent)| Cloud Events |
|[云事件](https://github.com/spring-cloud/spring-cloud-function/tree/master/spring-cloud-function-samples/function-sample-cloudevent)| Cloud Events |
|[RSocket](https://github.com/spring-cloud/spring-cloud-function/tree/master/spring-cloud-function-rsocket)| RSocket |
|[AWS Adapter](aws.html)| AWS Adapter Reference |
|[Azure Adapter](azure.html)| Azure Adapter Reference |
|[GCP Adapter](gcp.html)| GCP Adapter Reference |
|[AWS 适配器](aws.html)| AWS Adapter Reference |
|[Azure 适配器](azure.html)| Azure Adapter Reference |
|[GCP 适配器](gcp.html)| GCP Adapter Reference |
相关链接:
|[Reactor](https://projectreactor.io/)|Project Reactor|
|-------------------------------------|---------------|
如果{{{i[’GoogleAnalyticsObject’]=r;i[r]=i[r]|function(){q=i[r].push(参数)},i[r].l=1\*new date();a=s.createElement(o),m=s.getelementsbyName(0);a.parentsName(1);a.A.SRC=g;m.M.analytnode(gua,m.com.com);(google=document=’,’,’’’’’’’’),’documents’,’’.’’’’’’’’’’’,’’’’’’
\ No newline at end of file
Spring 云侦探参考文献
==========
# Spring Cloud 侦探参考文献
Adrian Cole,Spencer Gibb,Marcin Grzejszczak,DAVESyer,Jay Bryant
......@@ -9,8 +8,10 @@ Adrian Cole,Spencer Gibb,Marcin Grzejszczak,DAVESyer,Jay Bryant
|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|
|[Documentation Overview](documentation-overview.html#sleuth-documentation-about)|关于文档,获得帮助,第一步,等等。|
| [Getting Started](getting-started.html#getting-started) |介绍 Spring Cloud Sleuth,开发你的第一个 Spring 基于 Cloud Sleuth 的应用程序|
| [Using Spring Cloud Sleuth](using.html#using) |Spring 侦探的使用示例和工作流程。|
| [Using Spring Cloud Sleuth](using.html#using) |Spring Cloud侦探的使用示例和工作流程。|
| [Spring Cloud Sleuth Features](project-features.html#features) |跨越创建、上下文传播等。|
| [“How-to” Guides](howto.html#howto) |添加采样、传播远程标记等等。|
| [Spring Cloud Sleuth Integrations](integrations.html#sleuth-integration) |插装配置、上下文传播等。|
| [Appendices](appendix.html#appendix) |span 定义和配置属性。|
如果{{{i[’GoogleAnalyticsObject’]=r;i[r]=i[r]|function(){q=i[r].push(参数)},i[r].l=1\*new date();a=s.createElement(o),m=s.getelementsbyName(0);a.parentsName(1);a.A.SRC=g;m.M.analytnode(gua,m.com.com);(google=document=’,’,’’’’’’’’),’documents’,’’.’’’’’’’’’’’,’’’’’’
\ No newline at end of file
Spring 云流参考文档
==========
# Spring Cloud 流参考文档
Sabby Anandan Marius Bogovici ERICBottard Mark FisherIlayaperumal Gopinathan Mark Heckler Gunnar Hillert Mark Pollack Patrick Peralta Glenn Renfro Thomas Risberg DAVESyer David Turanski Janne Valkealahti Benjamin Klein Vinicius Carvalho Gary Russell Oleg Zhurakousky Jay Bryant Soby Chacko
**3.2.2**
......@@ -19,3 +20,5 @@ Spring 云流参考文档
|--------------------------------------------------------------------------------|------------------------------------------------------|
|[Enterprise 整合模式](http://www.enterpriseintegrationpatterns.com/)|Patterns and Best Practices for Enterprise Integration|
|[Spring Integration](https://spring.io/projects/spring-integration)| Spring Integration framework |
如果{{{i[’GoogleAnalyticsObject’]=r;i[r]=i[r]|function(){q=i[r].push(参数)},i[r].l=1\*new date();a=s.createElement(o),m=s.getelementsbyName(0);a.parentsName(1);a.A.SRC=g;m.M.analytnode(gua,m.com.com);(google=document=’,’,’’’’’’’’),’documents’,’’.’’’’’’’’’’’,’’’’’’
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册