Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Eğitim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • Spring Core
  • Spring Örnekleri
  • Hibernate
  • Java Server Pages
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • Java 8
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
Spring Cloud

Spring Cloud Dersleri : Spring Boot Projesini Google Cloud SQL Mysql Bağlantısı Kurmak

Paylaş

Spring Cloud Dersleri’ne devam ediyoruz. Önceki yazımızda bir Spring Boot Projesi’ni, Google App Engine deploy etmiştik.

İçindekiler

  • Google Cloud SQL MySQL Oluşturmak
  • Spring Boot Projesi Oluşturma
  • Spring Boot Projesini Google App Engine Deploy Etmek

Bu yazı da ise Google Cloud SQL kulanarak projemizi Google Cloud’da oluşturduğumuz veritabanına Spring Boot projemizden Spring Cloud ile bağlanacağız ve Google App Engine ‘ye projemizi deploy edeceğiz.


Google Cloud SQL MySQL Oluşturmak


Google Cloud’a giriyoruz. Veritbanı olarak MySql seçiyoruz.

Google Cloud Sql MySql

MySql’i oluşturduk. Burada dikkat etmemiz gereken alanlar bulunmaktadır. root, bölge alanları önemli root şifremizi bu veritabanına ulaşmak için kaydetmememiz gerekir. bölge alanı ise veritabanımızın bulunacağı fiziksel lokasyonu belirliyoruz. ve oluştur butonuna bastığımızda MySql olşturmuş oluyoruz.

MySql‘imizin içerisinde bir tablo oluşturalım.

Veritabanı oluştur butonuna basalım.

blank

Böylelikle veritabanımızı oluşturduk. Veribanımızın instance name (bağlantı adı) not edelim. Google Cloud Console’dan bağlantı adını öğrenebiliriz.

spring.cloud.gcp.sql.instance-connection-name
Code language: CSS (css)

Spring Boot Projesi Oluşturma


Spring Boot projesi oluşturalım. Maven Bağımlılığımız aşağıdaki gibi olacak. Önceki yazımda olan ve github’ta başlangıç projesini bulabilir ya da buradan da takip ederek geliştirebiliriz.

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>org.example</groupId> <artifactId>Spirng-Boot-Google-Cloud-MySql-Project</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <properties> <java.version>1.8</java.version> <spring-cloud.version>Greenwich.SR2</spring-cloud.version> <google-api-client.version>1.30.2</google-api-client.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-gcp-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-gcp-starter-sql-mysql</artifactId> </dependency> <dependency> <groupId>com.google.api-client</groupId> <artifactId>google-api-client</artifactId> <version>${google-api-client.version}</version> </dependency> <dependency> <groupId>com.google.api-client</groupId> <artifactId>google-api-client-appengine</artifactId> <version>${google-api-client.version}</version> </dependency> <dependency> <groupId>com.google.api-client</groupId> <artifactId>google-api-client-servlet</artifactId> <version>${google-api-client.version}</version> </dependency> <dependency> <groupId>com.google.appengine</groupId> <artifactId>appengine-api-1.0-sdk</artifactId> <version>${appengine-sdk.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>appengine-maven-plugin</artifactId> <version>2.0.0</version> </plugin> </plugins> </build> </project>
Code language: HTML, XML (xml)

Spring Boot projemizden Google Cloud MySql’e bağlantısı için Spring Cloud Mysql bağımlılığı ekledik.

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-gcp-starter-sql-mysql</artifactId> </dependency>
Code language: HTML, XML (xml)

application.properties dosyasına gerekli kullanıcı ve bağlantı bilgilerini yazıyoruz.

spring.datasource.username=kullanici-adi spring.datasource.password=sifre spring.cloud.gcp.sql.database-name=veritabani-adi spring.cloud.gcp.sql.instance-connection-name=baglanti-ad

Bu bağlantı bilgileri bize Google Cloud SQL Mysql Veritabanı tablomuza bağlanmamızı sağlayacak.

Projemize bir controller oluşturalım ve Rest Api şeklinde bir yapı oluşturağız. Bu yapıda Google Cloud SQL Mysql veritabanının tarih zaman bilgisini çekip göstereceğiz. Bu sayede projemizden Google Cloud SQL MySql’e bağlanacağız.

@RestController public class ConnectionController { private final JdbcTemplate jdbcTemplate; public ConnectionController(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } @GetMapping("/") public String connect(){ String currentTimestamp=jdbcTemplate.queryForObject("SELECT CURRENT_TIMESTAMP()", String.class); return "Database Connection Succesfuly Current Timestamp: "+ currentTimestamp; } }
Code language: JavaScript (javascript)

Yukarıdaki controller classımız çalıştığı anda veritabanına bağlanacak eğer bağlantı başarılı olursa ilgili mesajı tarayıcımızda göreceğiz.

Projemizin yerel bilgisayarımızda Google Cloud SQL’e bağlanabilmesi için bir key anahtarı edinip projemize eklememiz gerekmektedir. Bu sayede projemiz kendi bilgisayarımızda sorunsuz şekilde çalışır bunun için yapmamız gereken;

iam-admin sekmesinden Hizmet ve Hesaplar bölümünde Hizmet Hesabı Oluştur sekmesine tıklyoruz ve aşağıdaki resim sonrasında tüm izinler vererek

blank

json olarak indirdiğimiz dosyayı projemizin resources altına ekleyelim ve application.properties dosyasına bu keyi kullandığımızı belirten dosya lokasyonunu girelim.

spring.cloud.gcp.credentials.location=classpath:dosyaadi.json

Google App Engine’e deploy etmeden önce projemizi aşağıdaki komut ile çalıştıralım.

mvn appengine:run
Code language: CSS (css)

Tarayacımızda localhost:8080 tıklayalım. ve sonuca bakalım.

Database Connection Succesfuly Current Timestamp: 2020-07-12 18:17:16
Code language: CSS (css)

Spring Boot Projesini Google App Engine Deploy Etmek

Aşağıdaki komutu girerek Google Cloud App Engine ye projemizi yüklüyoruz.


mvn appengine:deploy -Dapp.deploy.projectId=[PROJECT_ID] -Dapp.deploy.version=1.0
Kaynak Kodlara Github'tan UlaşBu yazıda anlatılan projenin kaynak kodlarını Github üzerinden indirebilirsiniz.

Tags:

google cloud projesigoogle cloud sqlspring cloud dersleri

Paylaş

Diğer Yazılar

blank
Previous

PostgreSQL Veritabanı Tablosuna EXCEL / CSV Dosyadan Veri Eklemek

blank
Next

“SonarQube requires Java 11+ to run” Hatası Çözümü

Next
blank
07 Eylül 2020

“SonarQube requires Java 11+ to run” Hatası Çözümü

Previews
08 Temmuz 2020

PostgreSQL Veritabanı Tablosuna EXCEL / CSV Dosyadan Veri Eklemek

blank

No Comment! Be the first one.

Bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

Spring Cloud Aws SQS Uygulama Örneği

Spring Boot Cloud AWS SQS Kullanımı

Spring Cloud Config Server Nedir Uygulama Örneği Dersler

Spring Cloud Config Server Nedir? Uygulama Örneği

Axon Server Nedir Axon Framework Kurlumu

Axon Framework Nedir ve Kurulumu

Spring Cloud Dersleri Gateway Api Load Balancing Routing Uygulama Örneği

Spring Cloud Gateway & Routing & Load Balancing İşlemleri

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Cloud
Amazon Web Services
Vue.js
Gradle
Node.js
Android
Struts
Redis
Röportaj
Spring Data
Spring Cloud Stream
XCode
Debezium
Mikroservis Mimarisi
Video
Spring Native
iPhone Uygulama Geliştirme
Objective C
JPA
Spring Security
PostgreSQL
Apache Kafka
Git
Servlet
Yaptığım Projeler
Maven
Design Patterns
DevOps
Linux
RabbitMQ
PrimeFaces
JDBC
Spring Jdbc Template
Spring
Spring MVC
Manset
Google
Spring Cloud
OCA Java SE 8
Spring Core
Quarkus
Microsoft
Veritabanı
Tanıyalım
Java SE
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github
  • Eğitim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • Spring Core
  • Spring Örnekleri
  • Hibernate
  • Java Server Pages
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • Java 8
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale