Boot Musim Semi - Google Cloud Platform

Google Cloud Platform menyediakan layanan komputasi awan yang menjalankan aplikasi Spring Boot di lingkungan cloud. Dalam bab ini, kita akan melihat cara menerapkan aplikasi Spring Boot di platform mesin aplikasi GCP.

Pertama, unduh aplikasi Gradle build Spring Boot dari halaman Spring Initializer www.start.spring.io . Amati screenshot berikut.

Sekarang, di file build.gradle, tambahkan plugin appengine Google Cloud dan dependensi classpath appengine.

Kode untuk file build.gradle diberikan di bawah ini -

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.tutorialspoint'
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')
}

Sekarang, tulis HTTP Endpoint sederhana dan itu mengembalikan String sukses seperti yang ditunjukkan -

package com.tutorialspoint.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";
   }
}

Selanjutnya, tambahkan file app.yml di bawah direktori src / main / appengine seperti yang ditunjukkan -

runtime: java
env: flex

handlers:
- url: /.*
   script: this field is required, but ignored

Sekarang, buka konsol Google Cloud dan klik Activate Google cloud shell di bagian atas halaman.

Sekarang, pindahkan file sumber dan file Gradle Anda ke direktori home mesin cloud google Anda dengan menggunakan google cloud shell.

Sekarang, jalankan perintah gradle appengineDeploy dan itu akan menerapkan aplikasi Anda ke appengine Google Cloud.

Note - GCP harus mengaktifkan penagihan dan sebelum menerapkan aplikasi Anda ke appengine, Anda harus membuat platform appengine di GCP.

Diperlukan waktu beberapa menit untuk menerapkan aplikasi Anda ke dalam platform appengine GCP.

Setelah build berhasil, Anda dapat melihat URL Layanan di jendela konsol.

Sekarang, tekan URL layanan dan lihat hasilnya.

Google Cloud SQL

Untuk menghubungkan Google Cloud SQL ke aplikasi Spring Boot, Anda harus menambahkan properti berikut ke file application.properties Anda.

Format URL JDBC

jdbc:mysql://google/<DATABASE-NAME>?cloudSqlInstance = <GOOGLE_CLOUD_SQL_INSTANCE_NAME> &socketFactory = com.google.cloud.sql.mysql.SocketFactory&user = <USERNAME>&password = <PASSWORD>

Note - Aplikasi Spring Boot dan Google Cloud SQL harus berada dalam project GCP yang sama.

File application.properties diberikan di bawah ini.

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

Pengguna file YAML dapat menambahkan properti di bawah ini ke file application.yml Anda.

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