Spring Boot on GCP
  • Introduction
  • Getting Started
    • Google Cloud Platform
    • Cloud Shell
    • gcloud CLI
    • Hello World!
      • Cloud Shell
      • App Engine
      • Cloud Run
      • Kubernetes Engine
      • Compute Engine
      • Cloud Functions
  • Application Development
    • Development Tools
    • Spring Cloud GCP
    • Cloud Services
      • Databases
        • Cloud SQL
        • Cloud Spanner
        • Cloud Firestore
          • Datastore Mode
          • Native Mode
      • Messaging
        • Cloud Pub/Sub
        • Kafka
      • Secret Management
      • Storage
      • Cache
        • Memorystore Redis
        • Memorystore Memcached (beta)
      • Other Services
    • Observability
      • Trace
      • Logging
      • Metrics
      • Profiling
      • Debugging
    • DevOps
      • Artifact Repository
  • Deployment
    • Runtime Environments
    • Container
      • Container Image
      • Secure Container Image
      • Container Awareness
      • Vulnerability Scanning
      • Attestation
    • Kubernetes
      • Kubernetes Cluster
      • Deployment
      • Resources
      • Service
      • Health Checks
      • Load Balancing
        • External Load Balancing
        • Internal Load Balancing
      • Scheduling
      • Workload Identity
      • Binary Authorization
    • Istio
      • Getting Started
      • Sidecar Proxy
  • Additional Resources
    • Code Labs
    • Presentations / Videos
    • Cheat Sheets
Powered by GitBook
On this page
  • Demo
  • Configure Spring Boot Project
  • New Spring Boot Project
  • Existing Spring Boot Project
  • Services

Was this helpful?

  1. Application Development

Spring Cloud GCP

PreviousDevelopment ToolsNextCloud Services

Last updated 4 years ago

Was this helpful?

Spring Cloud GCP contains a set of easy to use starters/autoconfigurations that allow you to easily connect and adopt GCP services.

Spring Cloud GCP is part of the Spring Cloud release train.

Even though Spring Cloud GCP is part of the Spring Cloud release train, it doesn't mean that you need to use any Spring Cloud features (Eureka, Config Server, etc.). The release train helps manage dependency versions so that you don't need to specify versions. It avoids having incompatible dependency versions, and eliminates dependency conflicts.

Demo

Configure Spring Boot Project

New Spring Boot Project

Or, generate the project using curl:

curl https://start.spring.io/starter.zip \
  -d dependencies=web,cloud-gcp,lombok \
  -d bootVersion=2.3.1.RELEASE \
  -d baseDir=demo

Unpack the downloaded zip file:

unzip demo.zip

The generated project will include Spring Cloud release train BOM.

Existing Spring Boot Project

If you want to add Spring Cloud GCP to existing project, simply add Spring Cloud release train configuration. Different Spring Boot version is compatible with different Spring Cloud releases.

Spring Boot Version

Spring Cloud Version

2.1

Greenwich

2.2

Hoxton

2.3

Hoxton.SR5

Add the compatible Spring Cloud BOM version to your project:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Hoxton.SR5</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
buildscript {
  dependencies {
    classpath "io.spring.gradle:dependency-management-plugin:1.0.2.RELEASE"
  }
}

apply plugin: "io.spring.dependency-management"

dependencyManagement {
  imports {
    mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Hoxton.RELEASE'
  }
}

A BOM is a Bill of Material, when imported, you can specify dependencies managed by the BOM without explicitly specifying a version for that dependency. Using the Spring Cloud BOM will allow you to use all Google Cloud Client Libraries and Spring Cloud GCP libraries without explicitly specifying a version.

Services

Spring Cloud GCP supports many GCP services using de-facto Spring abstraction layers.

Concerns

GCP Service

Spring Abstraction

Databases

Cloud SQL

JDBC template

Spring Data JPA

Cloud Spanner

Spring Data Spanner

Spring Data JPA with Hibernate

Cloud Datastore

Spring Data Datastore

Cloud Firestore

Spring Reactive Data Firestore

Messaging

Cloud Pub/Sub

Pub/Sub Template

Spring Integration

Spring Cloud Stream

Spring Dataflow

Configuration

Cloud Secret Manager

Spring Cloud Config

Storage

Cloud Storage

Spring Resource

Cache

Cloud Memorystore

Spring Data Redis

Distributed Tracing

Cloud Trace

Spring Cloud Sleuth

Zipkin / Brave

Centralized Logging

Cloud Logging

SLF4J / Logback

Monitoring Metrics

Cloud Monitoring

Micrometer / Prometheus

Security

Cloud Identity Aware Proxy

Spring Security

Create a new Spring Boot project use , and add the .

See for the latest versions.

Spring Initializr
GCP Support dependency
Spring Cloud documentation
A short demo video of Spring Cloud GCP
Add the GCP Support dependency