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

Type and hit Enter to search

  • Quarkus Dersleri
  • Spring Dersleri
    • Spring Cloud
    • Spring Boot
    • Spring Uygulama Örnekleri
    • Spring Core
    • Spring JDBC Template
    • Spring MVC
  • İleri Java Dersleri
    • Java Server Faces
    • Java Server Pages
    • PrimeFaces
    • Servlet
    • JDBC
    • JSTL
    • Java 8
  • Hibernate Dersleri
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
  • Hakkımda
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.

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

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>

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>

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;
    }
}

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

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

Database Connection Succesfuly Current Timestamp: 2020-07-12 18:17:16

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 Dersleri

Spring Cloud Eureka Discovery Server Nedir? Uygulama Örneği

Spring Cloud Dersleri

Spring Cloud Dersleri

Spring Cloud Dersleri

Spring Cloud Nedir?

blank

Spring Cloud Dersleri : Spring Boot Projesini Google Cloud App Engine Deploy Etmek

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

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

Link

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

Kategori

Röportaj
Struts
Android
Vue.js
Node.js
Redis
XCode
Spring Data
Debezium
Mikroservis Mimarisi
Spring Native
Video
Spring Security
Objective C
iPhone Uygulama Geliştirme
JPA
DevOps
PostgreSQL
Apache Kafka
Git
Design Patterns
Yaptığım Projeler
Servlet
Maven
Spring Cloud
Linux
Spring
JDBC
PrimeFaces
Spring Jdbc Template
RabbitMQ
Google
Manset
Spring MVC
OCA Java SE 8
Quarkus
Spring Core
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