通过 Cloud Shell 构建和启动 Spring Boot Java 应用

1. 准备工作

Cloud Shell 是一款基于浏览器的命令行工具,可用于访问 Google Cloud 资源。Cloud Shell 让您可以轻松管理 Cloud 控制台项目和资源,而无需在系统上安装 Cloud SDK 和其他工具。

您将使用 Cloud Shell 构建和启动 Spring Boot 应用,而无需离开浏览器。为此,您将使用使用 Spring Boot 构建应用中的示例代码。

前提条件

  • 熟悉 Java 编程语言和工具
  • 了解标准的 Linux 文本编辑器,例如 Vim、Emacs 和 nano

您将执行的操作

  • 使用 Cloud Shell。
  • 在 Cloud Shell 中创建一个简单的 Spring Boot 应用。
  • 使用 Cloud Shell 中的代码编辑器修改应用。
  • 从 Cloud Shell 启动该应用。

所需条件

2. 设置和要求

自定进度的环境设置

  1. 如果您还没有 Google 账号,则必须创建一个。登录 Cloud 控制台并创建一个新项目。

3c50189ec031c0cf.png

2016-02-10 12:45:26 的屏幕截图.png

请请记住项目 ID,它在所有 Google Cloud 项目中都是唯一名称(很抱歉,图中的名称已被占用,您无法使用!)。它稍后将在 Codelab 中被称为 PROJECT_ID

  1. 接下来,您需要在 Cloud 控制台中启用结算功能,才能使用 Google Cloud 资源。在 Codelab 中运行仅花费几美元,但是如果您决定使用更多资源或继续让它们运行,费用可能更高。

Google Cloud 的新用户有资格获享$300 免费试用

Cloud Shell

基于 Debian 的这个虚拟机已加载了您需要的所有开发工具。它提供了一个持久的 5GB 主目录,并且在 Google Cloud 中运行,大大增强了网络性能和身份验证。这意味着在本 Codelab 中,您只需要一个浏览器(没错,它适用于 Chromebook)。

  1. 如需从 Cloud Console 激活 Cloud Shell,只需点击激活 Cloud Shellb125d9eb26a46cc5.png(预配和连接到环境仅需花费一些时间)。

1067942a9a93f70

Screen Shot 2017-06-14 at 10.13.43 PM.png

在连接到 Cloud Shell 后,您应该会看到自己已通过身份验证,并且相关项目已设置为您的 PROJECT_ID

gcloud auth list

命令输出

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

命令输出

[core]
project = <PROJECT_ID>

如果出于某种原因未设置项目,只需发出以下命令即可:

gcloud config set project <PROJECT_ID>

正在查找您的 PROJECT_ID?检查您在设置步骤中使用的 ID,或在 Cloud Console 信息中心查找该 ID:

cc3895eeac80db2c.png

默认情况下,Cloud Shell 还会设置一些环境变量,这对您日后运行命令可能会很有用。

echo $GOOGLE_CLOUD_PROJECT

命令输出

<PROJECT_ID>
  1. 最后,设置默认可用区和项目配置。
gcloud config set compute/zone us-central1-f

您可以选择各种不同的可用区。如需了解详情,请参阅区域和可用区

3. 初始化新的 Spring Boot 应用

安装 Spring Boot 命令行工具后,您可以初始化和引导新的“Hello, World”Web 应用。

$ curl https://start.spring.io/starter.tgz \
  -d dependencies=web \
  -d type=maven-project \
  -d baseDir=helloworld | tar -xzvf -

这将创建一个新目录,其中包含新的 Maven 项目、Maven 的 pom.xml、一个 Maven 封装容器和一个应用入口点。

4. 使用代码编辑器创建新的 RESTful 服务

  1. 点击 Cloud Shell 菜单中的打开编辑器 2109d75686c889a,打开代码编辑器。
  2. 编辑器打开后,找到 helloworld/src/main/java/com/example/demo/DemoApplication.java 文件。

f26aa4faf9b35058.png

  1. 代码打开后,创建一个新的 RESTful 控制器来响应 Hello。在 DemoApplication.java 文件中,在当前类之外添加一个新的 Helloworld 类定义。

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!";
        }
}
  1. 保存文件!

5. 在本地运行应用

  1. 在代码编辑器中打开一个终端,方法是从编辑器菜单中选择 Terminal,然后选择 New Terminal
  2. 确保 JAVA_HOME 设置为正确的 JDK 版本:
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
  1. 您可以使用 Spring Boot 插件正常启动 Spring Boot 应用。
$ cd $HOME/helloworld
$ ./mvnw -DskipTests spring-boot:run

a4c65d9e3f7494bf.png

  1. 在应用启动后,点击 Cloud Shell 工具栏中的网页预览1a94d5bd10bfc072,然后点击在端口 8080 上预览

6252b94905f3f7bd

浏览器会打开一个标签页,并连接到您启动的服务器。

8281cd520b191970

6. 恭喜

您已了解如何直接从 Cloud Shell 构建和启动新的 Spring Boot Java Web 应用。

了解详情