Membuat Config Service yang berisi konfigurasi 1 service

Buat project dengan spring initializr.
Menambahkan dependency spring-cloud-config-server.
Menambah anotasi @EnableConfigServer pada main class.
Konfigurasi config service (resource/application.properties)
Java
Copy
# Konfigurasi Port server.port=8080 # Memberitahu bahwa file konfigurasi berada dalam 1 project spring.profiles.active=native # json pretty print spring.jackson.serialization.indent-output=true
Membuat File Konfigurasi Selanjutnya kita akan membuat beberapa file konfigurasi. Semisal kita akan membuat konfigurasi database dan konfigurasi messaging. Di setiap konfigurasi tersebut kita juga dapat menambahkan profile, semisal untuk database kita dapat membuat untuk profile development dan profile qa. File file konfigurasi nantinya tersebut akan disimpan dalam di folder resource/config.
Contoh Konfigurasi Database (resource/config/db.properties)
Java
Copy
driverClassName=com.mysql.jdbc.Driver url=mysql:jdbc://localhost:3306/test username=root password=password
Contoh Konfigurasi Database Dev (resource/config/db-dev.properties)
Java
Copy
driverClassName=com.mysql.jdbc.Driver url=mysql:jdbc://localhost:3306/test username=root password=password
Contoh Konfigurasi Database QA (resource/config/db-qa.properties)
Java
Copy
driverClassName=com.mysql.jdbc.Driver url=mysql:jdbc://localhost:3306/test username=root password=password
Contoh Konfigurasi Messaging (resource/config/mq.properties)
Java
Copy
brokeurl=localhost:5672 username=guest password=guest
Kemudian coba jalankan config service.
Spring Cloud Config menyediakan API untuk konfigurasi yang disimpan olehnya. Untuk mengaksesnya dapat menggunakan endpoint berikut :
Java
Copy
http://localhost:8080/{name}/{profile}/{label}
Keterangan :
name berarti nama dari servicenya.
profile berarti profile dari servicenya. Biasanya setiap service memiliki beberapa profile seperti dev, staging, deploy.
label berati label tambahan
Contoh enpoint yang dapat di akses :
Java
Copy
http://localhost:8080/db/default http://localhost:8080/db/dev http://localhost:8080/db/qa http://localhost:8080/mq/default

Membuat Config Service yang berisi lebih dari konfigurasi 1 service

Setelah kita membuat config service dengan 1 konfigurasi service, kita akan coba menambahkan beberapa konfigurasi aplikasi pada config service kita. Karena pada dasarnya config service ini yang akan menghandle file file konfigurasi dari bebagai microservice.
Buat File konfigurasiContoh Konfigurasi aplikasi 1 Default(resource/app1/myapp.properties)
Java
Copy
foo=barbar=bam
Contoh Konfigurasi aplikasi 1 untuk Developer Stage(resource/app1/myapp-dev.properties)
Java
Copy
foo=bardevbar=bam
Contoh Konfigurasi aplikasi 2 Default (resource/app2/myapp.properties)
Java
Copy
foo=barbar=bam
Tambahkan konfigurasi untuk multiple aplikasi menggunakan spring.cloud.config.server.native.search-locations:
Berikut adalah contohnya :
Java
Copy
spring.cloud.config.server.native.search-locations:classpath:/config, classpath:/app1, classpath:/app2
Nama folder konfigurasi ditulis setelah classpath:/ . Dalam konteks ini classpath berada di direktori src/main/resource.
Untuk dapat melihat hasilnya anda dapat mengakses beberapa url berikut :
Java
Copy
http://localhost:8080/myapp/default http://localhost:8080/myapp/dev http://localhost:8080/myapp-default.json http://localhost:8080/myapp-dev.json

Override value konfigurasi

Kita dapat mengoverride konfgurasi yang identik, semisal untuk file resource/app1/myapp.properties dan resource/app2/myapp.properties. Kedua file konfigurasi tersebut sama-sama memiliki parameter bernama foo. Apabila anda ingin mengoverride value dari foo tersebut, dapat dilakukan dengan beberapa langkah berikut.
Tambahkan konfigurasi untuk override konfigurasi
Java
Copy
spring.cloud.config.server.overrides.<nama-parameter>=<value>
Pada script diatas ada 2 nilai yang harus diisi yaitu nama-parameter yang akan di override dan value dari parameter tersebut
Untuk dapat melihat hasilnya anda dapat mengakses beberapa url berikut :
Java
Copy
http://localhost:8080/myapp/default http://localhost:8080/myapp-default.json http://localhost:8080/myapp-default.yml