1. Before you begin
Cloud Shell is a browser-based command-line tool that allows you to access Google Cloud resources. Cloud Shell makes it easy to manage your Cloud Console projects and resources without having to install the Cloud SDK and other tools on your system.
You'll use Cloud Shell to build and launch a Spring Boot app without ever leaving your browser. To do so, you'll use the sample code from Building an App with Spring Boot.
Prerequisites
- Familiarity with Java programming language and tools
- Knowledge of standard Linux text editors, such as Vim, Emacs, and nano
What you'll do
- Use Cloud Shell.
- Create a simple Spring Boot app in Cloud Shell.
- Edit the app using the code editor in Cloud Shell.
- Launch the app from Cloud Shell.
What you'll need
- A Google Cloud project
- A browser, such Google Chrome
2. Setup and requirements
Self-paced environment setup
- If you don't already have a Google Account, then you must create one. Sign into Cloud Console and create a new project.
Remember the project ID, a unique name across all Google Cloud projects (the name in the image has already been taken and will not work for you, sorry!). It will be referred to later in the codelab as PROJECT_ID
.
- Next, you need to enable billing in the Cloud Console to use Google Cloud resources. Running through the codelab shouldn't cost you more than a few dollars, but it could be more if you decide to use more resources or if you leave them running.
New users of Google Cloud are eligible for a $300 free trial.
Cloud Shell
This Debian-based virtual machine is loaded with all the development tools you'll need. It offers a persistent 5GB home directory and runs in Google Cloud, greatly enhancing network performance and authentication. This means that all you will need for this codelab is a browser (yes, it works on a Chromebook).
- To activate Cloud Shell from the Cloud Console, simply click Activate Cloud Shell (it should only take a few moments to provision and connect to the environment).
Once connected to Cloud Shell, you should see that you are already authenticated and that the project is already set to your PROJECT_ID
.
gcloud auth list
Command output
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
Command output
[core] project = <PROJECT_ID>
If, for some reason, the project is not set, simply issue the following command:
gcloud config set project <PROJECT_ID>
Looking for your PROJECT_ID
? Check out what ID you used in the setup steps or look it up in the Cloud Console dashboard:
Cloud Shell also sets some environment variables by default, which may be useful as you run future commands.
echo $GOOGLE_CLOUD_PROJECT
Command output
<PROJECT_ID>
- Finally, set the default zone and project configuration.
gcloud config set compute/zone us-central1-f
You can choose a variety of different zones. For more information, see Regions & Zones.
3. Initialize a new Spring Boot app
After the Spring Boot command-line tool is installed, you can initialize and bootstrap a new "Hello, World" web app.
$ curl https://start.spring.io/starter.tgz \ -d dependencies=web \ -d type=maven-project \ -d baseDir=helloworld | tar -xzvf -
That creates a new directory with a new Maven project, along with Maven's pom.xml
, a Maven wrapper, and an app entry point.
4. Create a new RESTful service with the code editor
- Open the code editor by clicking Open editor in the Cloud Shell menu.
- After the editor opens, find the
helloworld/src/main/java/com/example/demo/DemoApplication.java
file.
- After the code opens, create a new RESTful controller to respond
Hello
. In theDemoApplication.java
file, add a newHelloworld
class definition in addition to the current one.
src/main/java/com/example/demo/DemoApplication.java
package com.example;
...
// Add the import
import org.springframework.web.bind.annotation.*;
@SpringBootApplication
public class DemoApplication {
...
}
// Add the controller
@RestController
class Helloworld {
@GetMapping("/")
public String greet() {
return "Hello!";
}
}
- Save the file!
5. Locally run the app
- Open a terminal in the code editor by selecting
Terminal
and thenNew Terminal
from the editor menu. - Make sure
JAVA_HOME
is set to the correct JDK version:
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
- You can start the Spring Boot app normally with the Spring Boot plugin.
$ cd $HOME/helloworld $ ./mvnw -DskipTests spring-boot:run
- After the app starts, click Web Preview in the Cloud Shell toolbar, then click Preview on port 8080.
A tab in your browser opens and connects to the server that you started.
6. Congratulations
You learned to build and launch a new Spring Boot Java web app directly from Cloud Shell.