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

Spring Boot Config Server

İlk yayın22 Şubat 2025
Son güncelleme23 Şubat 2025
Okuma süresi3 dk okuma
JavaKotlinSpring BootSpring CloudConfig ServerMikroservis
XLinkedInFacebook
Spring Boot Config Server

Beğeni yükleniyor...

Spring Boot Config Server, dağıtılmış uygulamalar için merkezi yapılandırma yönetimi sağlar ve hizmetlerin yeniden başlatılmasına gerek kalmadan dinamik yapılandırma güncellemelerine olanak tanır. Bu kılavuz, Spring Boot Config Server'ı nasıl kuracağınızı ve etkin bir şekilde kullanacağınızı açıklar.


Son güncelleme23 Şubat 2025

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

Önceki makaleSpring Boot Docker EntegrasyonuSonraki makaleSpring Boot Eureka Server
Ş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 Circuit Breaker
Programlama

Spring Boot Circuit Breaker

Spring Boot uygulamalarında Circuit Breaker kullanımını öğrenerek mikro hizmetlerin dayanıklılığını artırın.

13 Mart 20253 dk okuma
JavaKotlinSpring BootSpring CloudCircuit BreakerMikroservis
Spring Boot Eureka Server
Programlama

Spring Boot Eureka Server

Mikro hizmet mimarisinde servis keşfi için Spring Boot Eureka serverın nasıl kurulacağını ve yapılandırılacağını öğrenin.

23 Şubat 20253 dk okuma
JavaKotlinSpring BootSpring CloudEureka ServerMikroservis
Spring Boot Kubernetes Entegrasyonu
Programlama

Spring Boot Kubernetes Entegrasyonu

Spring Boot uygulamalarını Kubernetes üzerinde nasıl ölçeklenebilir ve konteyner tabanlı olarak dağıtabileceğinizi öğrenin.

21 Şubat 20253 dk okuma
JavaKotlinSpring BootKubernetesMikroservisKonteynerizasyon

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 Config Server Kullanmalıyız?

Bu bölümde Neden Config Server Kullanmalıyız? konusunu netleştirip uygulamada kullanacağınız temel noktaları özetliyoruz.

  • Merkezi Yapılandırma: Uygulama ayarlarını tek bir yerde yönetin.
  • Dinamik Güncellemeler: Yapılandırmaları hizmetleri yeniden başlatmadan güncelleyin.
  • Environment Profilleri: Geliştirme, test ve üretim ortamları için farklı yapılandırmaları destekler.
  • Güvenlik ve Erişim Kontrolü: Hassas yapılandırmaları güvenli bir şekilde saklayın.
  • Git Entegrasyonu: Yapılandırma sürümlerini yönetmek ve izlemek için Git kullanın.

📋 Gereksinimler

Aşağıdaki bileşenlerin sisteminizde yüklü olduğundan emin olun:

  • ☕ Java Development Kit (JDK) 17+
  • 📦 Maven veya Gradle yüklü
  • 📁 Git Deposu (Yapılandırmaları saklamak için)

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

Spring Cloud Config Server için gerekli bağımlılıkları ekleyin.

Maven:

XMLpom.xml
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>

Gradle:

GROOVYbuild.gradle
implementation 'org.springframework.cloud:spring-cloud-config-server'

🛠️ Adım 2: Config Server Uygulamasını Oluşturma


🛠️ Adım 3: Config Server'ı Yapılandırma

Config ayarlarını saklamak için Git deposunu belirten bir application.yml dosyası oluşturun.

YAMLapplication.yml
server:
  port: 8888
spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/example/config-repo
          default-label: main

Not: https://github.com/example/config-repo adresini kendi Git deponuzla değiştirin.


🛠️ Adım 4: Konfigürasyon Deposu Oluşturma

Git deposunda (config-repo) bir application.yml dosyası oluşturun:

YAMLconfig.yml
config.key: 'Merhaba, Config Server!'

Dosyayı ekleyip gönderin:

BASH
git add application.yml
git commit -m "Konfigürasyon dosyası eklendi"
git push origin main

▶️ Config Server'ı Çalıştırma

Config Server uygulamasını başlatın:

BASH
./mvnw spring-boot:run

veya Gradle kullanarak:

BASH
gradle bootRun

Config Server'ın çalıştığını doğrulamak için şu komutu çalıştırın:

BASH
curl -X GET http://localhost:8888/application/default

Beklenen Çıktı:

JSONconfig.json
{
  "name": "application",
  "profiles": ["default"],
  "propertySources": [
    {
      "name": "https://github.com/example/config-repo/application.yml",
      "source": {
        "config.key": "Merhaba, Config Server!"
      }
    }
  ]
}

🛠️ Adım 5: İstemci Uygulamayı Yapılandırma

Bu bölümde Adım 5: İstemci Uygulamayı Yapılandırma konusunu netleştirip uygulamada kullanacağınız temel noktaları özetliyoruz.

Bağımlılıkları Ekleme

Bu adımda istemcinin Config Server üzerinden merkezi ayarları çekebilmesi için gerekli starter bağımlılığını ekliyoruz.

Maven:

XMLpom.xml
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

Gradle:

GROOVYbuild.gradle
implementation 'org.springframework.cloud:spring-cloud-starter-config'

İstemci Uygulama Yapılandırması

İstemci uygulamanın bootstrap.yml dosyasına aşağıdaki ayarları ekleyin:

YAMLapplication.yml
spring:
  application:
    name: config-client
  cloud:
    config:
      uri: http://localhost:8888

İstemci Uygulama Kodu

Aşağıdaki örnek, İstemci Uygulama Kodu için pratik bir bağlam sunar ve doğrudan uygulanabilir.


▶️ İstemci Uygulamayı Çalıştırma

İstemci uygulamasını başlatmak için:

BASH
./mvnw spring-boot:run

veya Gradle kullanarak:

BASH
gradle bootRun

Config Server'dan konfigürasyonu almak için:

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

Beklenen Çıktı:

PLAINTEXTsnippet.txt
Konfigürasyon Değeri: Merhaba, Config Server!

🏁 Sonuç

Artık Spring Boot Config Server 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.

JAVAConfigServerApplication.java
package com.example.configserver;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}
KOTLINConfigServerApplication.kt
package com.example.configserver

import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.cloud.config.server.EnableConfigServer

@SpringBootApplication
@EnableConfigServer
class ConfigServerApplication

fun main(args: Array<String>) {
    runApplication<ConfigServerApplication>(*args)
}
JAVAConfigClientApplication.java
package com.example.configclient;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.beans.factory.annotation.Value;

@SpringBootApplication
@RestController
@RequestMapping("/config")
public class ConfigClientApplication {

  @Value("${config.key:not found}")
  private String configValue;

  @GetMapping
  public String getConfigValue() {
    return "Konfigürasyon Değeri: " + configValue;
  }

  public static void main(String[] args) {
    SpringApplication.run(ConfigClientApplication.class, args);
  }
}
KOTLINConfigClientApplication.kt
package com.example.configclient

import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController
import org.springframework.beans.factory.annotation.Value

@SpringBootApplication
@RestController
@RequestMapping("/config")
class ConfigClientApplication {

    @Value("\${config.key:not found}")
    private lateinit var configValue: String

    @GetMapping
    fun getConfigValue(): String {
        return "Konfigürasyon Değeri: $configValue"
    }
}

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