Şuayb'in BloguŞuayb'in Blogu
Ana Sayfa
Kategoriler
Oyunlar
MediumHakkındaİletişim
Dil
Tema
    1. Blog
    2. Programlama
    3. Spring Boot ile GraalVM Native Uygulama

Spring Boot ile GraalVM Native Uygulama

İlk yayın28 Aralık 2024
Son güncelleme29 Aralık 2024
Okuma süresi3 dk okuma
JavaKotlinSpring BootGraalVMNative İmaj
XLinkedInFacebook
Spring Boot ile GraalVM Native Uygulama

Beğeni yükleniyor...

Spring Boot ile GraalVM Native, geliştiricilere daha hızlı başlatma süreleri, azaltılmış bellek tüketimi ve artırılmış güvenlik sunan uygulamalar oluşturma imkânı tanır. Native imaj desteği sayesinde, Spring Boot uygulamalarınız kaynak kısıtlı ortamlarda etkin bir şekilde çalışabilir ve modern bulut tabanlı mimariler için ideal bir seçenek haline gelir.


Son güncelleme29 Aralık 2024

Toplam görüntülenmeGörüntülenme yükleniyor...

Önceki makaleSpring Boot ile Kafka EntegrasyonuSonraki makaleSpring Boot Reaktif Programlama
Şuayb Şimşek

Yazan

Şuayb Şimşek

Spring Boot, güvenlik, mikroservis ve cloud-native mimari konularında pratik teknik notlar paylaşan backend odaklı fullstack geliştirici.

Uzmanlık

  • Spring Boot
  • Go
  • Mikroservis
  • Next.js
  • Cloud Native

Bağlantılar

GitHubLinkedInMedium

Benzer yazılar

Spring Boot Configuration Properties
Programlama

Spring Boot Configuration Properties

@ConfigurationProperties ile tip-güvenli yapılandırma tanımlamayı, @Validated ile ayarları doğrulamayı ve profile-specific application-{profile}.yml dosyalarıyla ortama göre değer yönetimini öğrenin.

4 Şubat 20263 dk okuma
JavaKotlinSpring BootYapılandırma
Spring Boot GraphQL JWE Kimlik Doğrulama
Programlama

Spring Boot GraphQL JWE Kimlik Doğrulama

Stateless şifreli JWT’ler (JWE) ile Spring Boot GraphQL API’lerinizi güvenli hale getirmeyi; kullanıcı kimliği ve rolleri JPA ile bir veritabanında saklamayı öğrenin.

17 Mayıs 20256 dk okuma
JavaKotlinSpring BootGüvenlikJWTJWEGraphQL
Spring Boot JPA ile JWE Kimlik Doğrulaması
Programlama

Spring Boot JPA ile JWE Kimlik Doğrulaması

Stateless şifreli JWT’ler (JWE) kullanarak Spring Boot API’lerinizi güvenli hale getirirken, kullanıcı kimliklerini ve rolleri JPA destekli bir veritabanında nasıl saklayacağınızı öğrenin.

11 Mayıs 20254 dk okuma
JavaKotlinSpring BootGüvenlikJWTJWEJPA

Hakkımda

Spring Boot, mikroservis, güvenlik ve daha fazlası hakkında yazılar.

İletişimYeni başladıysan

Son yazılar

  • Captain Tsubasa 2: World Fighters
  • Captain Tsubasa: Rise of New Champions
  • Spring Boot Configuration Properties
  • Spring Boot GraphQL JWE Kimlik Doğrulama
  • Spring Boot JPA ile JWE Kimlik Doğrulaması

Popüler konular

JavaKotlinSpring BootGüvenlikJWEJWT

Abone ol

Yeni yazılar yayınlandığında pratik backend ve fullstack notlarını al.

Sosyal

© 2024-2026 Şuayb'in Blogu. Tüm hakları saklıdır.

🌟 Neden GraalVM ile Native Uygulama Oluşturalım?

Bu bölümde Neden GraalVM ile Native Uygulama Oluşturalım? konusunu netleştirip uygulamada kullanacağınız temel noktaları özetliyoruz.

  • Daha Hızlı Başlatma Süreleri: Native imajlar, JVM tabanlı uygulamalara kıyasla çok daha hızlı başlatılır.
  • Azaltılmış Kaynak Kullanımı: Native imajlar daha az bellek kullanır, bu da bulut ve konteynerize ortamlar için idealdir.
  • Artırılmış Güvenlik: Daha küçük bir runtime ve sınırlı bir yüzey alanı sunar.

📋 Gereksinimler

Aşağıdakilere sahip olduğunuzdan emin olun:

  • ☕ Java Development Kit (JDK) 17+
  • 🛠 GraalVM native-image desteği ile yüklenmiş
  • 🕝 Maven veya Gradle
  • 🐳 Docker (opsiyonel, konteyner imajları oluşturmak için)

🛠️ Adım 1: Bağımlılıkları Ekleyin

pom.xml veya build.gradle dosyanıza GraalVM Native Build Tools eklentisini ekleyin.

Maven:

XMLpom.xml
<plugin>
    <groupId>org.graalvm.buildtools</groupId>
    <artifactId>native-maven-plugin</artifactId>
    <version>0.9.20</version>
</plugin>

Gradle:

GROOVYbuild.gradle
plugins {
    id 'org.graalvm.buildtools.native' version '0.9.20'
}

🛠️ Adım 2: Bir REST Controller Yazın

Native imaj fonksiyonelliğini test etmek için basit bir REST endpoint oluşturun.


🛠️ Adım 3: Native İmaj Oluşturun

Bu bölümde Adım 3: Native İmaj Oluşturun konusunu netleştirip uygulamada kullanacağınız temel noktaları özetliyoruz.

Maven: Native imaj oluşturmak için aşağıdaki komutu çalıştırın:

BASH
mvn -Pnative package

Gradle: Aşağıdaki komutu çalıştırın:

BASH
gradle nativeCompile

🛠️ Adım 4: Docker İmajı Oluşturun

Spring Boot, native yürütülebilir dosyalarla Docker imajları oluşturmayı destekler.

Maven:

BASH
mvn -Pnative spring-boot:build-image

Gradle:

BASH
gradle bootBuildImage

Docker imajı local olarak hazır olacak ve aşağıdaki komutla çalıştırılabilir:

BASH
docker run --rm -p 8080:8080 myproject:0.0.1-SNAPSHOT

▶️ Uygulamayı Çalıştırma

Bu bölümde Uygulamayı Çalıştırma konusunu netleştirip uygulamada kullanacağınız temel noktaları özetliyoruz.

Yerel Olarak Çalıştırma

Native imajı doğrudan çalıştırabilirsiniz:

BASH
./target/myproject

Docker'da Çalıştırma

Eğer Docker imajı oluşturduysanız, aşağıdaki komutu kullanarak çalıştırabilirsiniz:

BASH
docker run --rm -p 8080:8080 myproject:0.0.1-SNAPSHOT

🧪 API'yı Test Etme

REST endpoint'i cURL veya Postman kullanarak test edin:

BASH
curl -X GET http://localhost:8080/greeting

Beklenen çıktı:

PLAINTEXTsnippet.txt
Hello from GraalVM Native!

🏁 Sonuç

Artık GraalVM Native Uygulama için üretim odaklı bir Spring Boot temeliniz var. Sonraki adımda ayarları kendi domainine uyarlayıp test ve gözlemlenebilirlik katmanını ekleyerek gerçek trafik altında doğrulayın.

JAVAMyApplication.java
package com.example.graalvmnative;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }

    @GetMapping("/greeting")
    public String greeting() {
        return "Hello from GraalVM Native!";
    }
}
KOTLINMyApplication.kt
package com.example.graalvmnative

import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController

@SpringBootApplication
@RestController
class MyApplication {

    @GetMapping("/greeting")
    fun greeting(): String = "Hello from GraalVM Native!"
}

fun main(args: Array<String>) {
    runApplication<MyApplication>(*args)
}