21 Mayıs 2019 Salı

SpringCloud Config Server @EnableConfigServer

Giriş
Şu satırı dahil ederiz
import org.springframework.cloud.config.server.EnableConfigServer;
Açıklaması şöyle
@EnableConfigServer is class-level annotation. It helps Spring Cloud Config Server to be embedded in Spring Boot application very easily and the @EnableConfigServer annotation makes the Spring Boot application act as a Configuration Server.
Konfigürasyon verisinin Repository 'den çekilerek kullanılmasını sağlar. Repository olarak Git, SVN, Dosya Sistemi kullanılabilir

Ayarları okuyan taraf için SpringCloud Config Client yazısına bakınız.

Örnek - git
Örneği buradan aldım
1. Bir tane dizin yarat, örneğin ismi  "config-properties" olsun
2. Bu dizinde bir tane properties dosyası yarat, örneğin ismi "hello-service.properties" olsun. Her dosya bir servise ait. Burada servisin ismi "hello-service". Dosyanın içi şöyle olsun
message=Hello world - this message is from config server
3. application.properties dosyasında git ile saklanan repository yolunu belirtmek gerekir. 

4. Konfigürasyon Sunucusu Uygulaması
@EnableConfigServer anotasyonu "spring.cloud.config.server.git.uri" ile belirtilen yoldaki her properties dosyası için bir tane Rest Endpoint oluşturur. 

Örnek
Şöyle yaparız
@EnableConfigServer
@SpringBootApplication
public class HelloConfigServerApplication {
  public static void main(String[] args) {
    SpringApplication.run(HelloConfigServerApplication.class, args);
  }
}
Sunucu çalıştıktan sonra hello-service.properties dosyasına erişmek için şöyle yaparız. Burada default kelimesi hello-service.properties anlamına geliyor.
http://localhost:8888/hello-service/default
Çıktı olarak şunu alırız
{
  "name": "hello-service",
  "profiles": [
    "default"
  ],
  "label": null,
  "version": "3da88aa3c6103cc7f2b383a3ee5d5dad5e6e870c",
  "state": null,
  "propertySources": [
    {
      "name": "file:///d:/config-properties/hello-service.properties",
      "source": {
        "message": "Hello world - this message is from config server"
      }
    }
  ]
}
Eğer bu servise ait hello-service-development.properties dosyasına erişmek istersek şöyle yaparız
http://localhost:8888/hello-service/development



Hiç yorum yok:

Yorum Gönder