Google Cloud Platform提供云计算服务,在云环境中运行Spring Boot应用程序.在本章中,我们将了解如何在GCP应用引擎平台中部署Spring Boot应用程序.
首先,从Spring Initializer页面下载Gradle构建Spring Boot应用程序 www.start.spring.io .请注意以下屏幕截图.
现在,在构建中.gradle文件,添加Google Cloud appengine插件和appengine类路径依赖.
build.gradle文件的代码在下面给出 :
buildscript { ext { springBootVersion = '1.5.9.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") classpath 'com.google.cloud.tools:appengine-gradle-plugin:1.3.3' } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' apply plugin: 'com.google.cloud.tools.appengine' group = 'com.it1352' version = '0.0.1-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { compile('org.springframework.boot:spring-boot-starter-web') testCompile('org.springframework.boot:spring-boot-starter-test') }
现在,写一个简单的HTTP端点,它返回String成功,如图所示 :
package com.it1352.appenginedemo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController public class AppengineDemoApplication { public static void main(String[] args) { SpringApplication.run(AppengineDemoApplication.class, args); } @RequestMapping(value = "/") public String success() { return "APP Engine deployment success"; } }
接下来,在src/main/appengine目录下添加app.yml文件,如下所示 :
runtime: java env: flex handlers: - url: /.* script: this field is required, but ignored
现在,转到Google Cloud控制台,然后点击页面顶部的激活Google云端shell .
现在,移动源文件和使用google cloud shell将文件放入google云计算机的主目录.
现在,执行命令gradle appengineDeploy,它会将您的应用程序部署到Google Cloud appengine中.
注意 : 去; GCP应该启用计费功能,在将应用程序部署到appengine之前,您应该在GCP中创建appengine平台.
将您的应用程序部署到GCP appengine平台需要几分钟.
构建成功后,您可以在控制台窗口中看到服务URL.
现在,点击服务URL并查看输出.
要将Google Cloud SQL连接到Spring Boot应用程序,您应该将以下属性添加到您的应用程序中.属性文件.
jdbc:mysql://google/<DATABASE-NAME>?cloudSqlInstance = <GOOGLE_CLOUD_SQL_INSTANCE_NAME> &socketFactory = com.google.cloud.sql.mysql.SocketFactory&user = <USERNAME>&password = <PASSWORD>
注意 : Spring Boot应用程序和Google Cloud SQL应该在同一个GCP项目中.
application.properties文件如下所示.
spring.dbProductService.driverClassName = com.mysql.jdbc.Driver spring.dbProductService.url = jdbc:mysql://google/PRODUCTSERVICE?cloudSqlInstance = springboot-gcp-cloudsql:asia-northeast1:springboot-gcp-cloudsql-instance&socketFactory = com.google.cloud.sql.mysql.SocketFactory&user = root&password = rootspring.dbProductService.username = root spring.dbProductService.password = root spring.dbProductService.testOnBorrow = true spring.dbProductService.testWhileIdle = true spring.dbProductService.timeBetweenEvictionRunsMillis = 60000 spring.dbProductService.minEvictableIdleTimeMillis = 30000 spring.dbProductService.validationQuery = SELECT 1 spring.dbProductService.max-active = 15 spring.dbProductService.max-idle = 10 spring.dbProductService.max-wait = 8000
YAML文件用户可以将以下属性添加到application.yml文件中.
spring: datasource: driverClassName: com.mysql.jdbc.Driver url: "jdbc:mysql://google/PRODUCTSERVICE?cloudSqlInstance=springboot-gcp-cloudsql:asia-northeast1:springboot-gcp-cloudsql-instance&socketFactory=com.google.cloud.sql.mysql.SocketFactory&user=root&password=root" password: "root" username: "root" testOnBorrow: true testWhileIdle: true validationQuery: SELECT 1 max-active: 15 max-idle: 10 max-wait: 8000