Spring Boot - Properti Aplikasi
Properti Aplikasi mendukung kami untuk bekerja di lingkungan yang berbeda. Di bab ini, Anda akan mempelajari cara mengkonfigurasi dan menentukan properti untuk aplikasi Spring Boot.
Properti Baris Perintah
Aplikasi Spring Boot mengubah properti baris perintah menjadi properti Spring Boot Environment. Properti baris perintah lebih diutamakan daripada sumber properti lainnya. Secara default, Spring Boot menggunakan nomor port 8080 untuk memulai Tomcat. Mari kita pelajari cara mengubah nomor port dengan menggunakan properti baris perintah.
Step 1 - Setelah membuat file JAR yang dapat dieksekusi, jalankan dengan menggunakan perintah java –jar <JARFILE>.
Step 2 - Gunakan perintah yang diberikan pada tangkapan layar yang diberikan di bawah ini untuk mengubah nomor port untuk aplikasi Spring Boot dengan menggunakan properti baris perintah.
Note - Anda dapat menyediakan lebih dari satu properti aplikasi dengan menggunakan pemisah -.
File Properti
File properti digunakan untuk menyimpan sejumlah properti 'N' dalam satu file untuk menjalankan aplikasi di lingkungan yang berbeda. Di Spring Boot, properti disimpan di fileapplication.properties file di bawah classpath.
File application.properties terletak di src/main/resourcesdirektori. Kode untuk sampelapplication.properties file diberikan di bawah ini -
server.port = 9090
spring.application.name = demoservice
Perhatikan bahwa dalam kode yang ditunjukkan di atas layanan demo aplikasi Spring Boot dimulai pada port 9090.
File YAML
Spring Boot mendukung konfigurasi properti berbasis YAML untuk menjalankan aplikasi. Dari padaapplication.properties, kita bisa gunakan application.ymlmengajukan. File YAML ini juga harus disimpan di dalam classpath. Contohapplication.yml file diberikan di bawah ini -
spring:
application:
name: demoservice
server:
port: 9090
Properti Eksternalisasi
Daripada menyimpan file properti di bawah classpath, kita bisa menyimpan properti di lokasi atau jalur berbeda. Saat menjalankan file JAR, kita dapat menentukan path file properti. Anda dapat menggunakan perintah berikut untuk menentukan lokasi file properti saat menjalankan JAR -
-Dspring.config.location = C:\application.properties
Penggunaan Anotasi @Value
Anotasi @Value digunakan untuk membaca lingkungan atau nilai properti aplikasi dalam kode Java. Sintaks untuk membaca nilai properti ditunjukkan di bawah ini -
@Value("${property_key_name}")
Lihat contoh berikut yang menunjukkan sintaks untuk membaca file spring.application.name nilai properti dalam variabel Java dengan menggunakan anotasi @Value.
@Value("${spring.application.name}")
Perhatikan kode yang diberikan di bawah ini untuk pemahaman yang lebih baik -
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class DemoApplication {
@Value("${spring.application.name}")
private String name;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@RequestMapping(value = "/")
public String name() {
return name;
}
}
Note - Jika properti tidak ditemukan saat menjalankan aplikasi, Spring Boot akan menampilkan pengecualian Illegal Argument sebagai Could not resolve placeholder 'spring.application.name' in value "${spring.application.name}".
Untuk mengatasi masalah placeholder, kita dapat mengatur nilai default untuk properti menggunakan sintaks thr yang diberikan di bawah ini -
@Value("${property_key_name:default_value}")
@Value("${spring.application.name:demoservice}")
Profil Aktif Spring Boot
Spring Boot mendukung properti berbeda berdasarkan profil aktif Spring. Misalnya, kita dapat menyimpan dua file terpisah untuk pengembangan dan produksi untuk menjalankan aplikasi Spring Boot.
Profil aktif musim semi di application.properties
Mari kita pahami bagaimana memiliki profil aktif Spring di application.properties. Secara default, aplikasi. properti akan digunakan untuk menjalankan aplikasi Spring Boot. Jika Anda ingin menggunakan properti berbasis profil, kami dapat menyimpan file properti terpisah untuk setiap profil seperti yang ditunjukkan di bawah ini -
application.properties
server.port = 8080
spring.application.name = demoservice
application-dev.properties
server.port = 9090
spring.application.name = demoservice
application-prod.properties
server.port = 4431
spring.application.name = demoservice
Saat menjalankan file JAR, kita perlu menentukan profil aktif pegas berdasarkan setiap file properti. Secara default, aplikasi Spring Boot menggunakan file application.properties. Perintah untuk mengatur profil aktif pegas ditunjukkan di bawah ini -
Anda dapat melihat nama profil aktif di log konsol seperti yang ditunjukkan di bawah ini -
2017-11-26 08:13:16.322 INFO 14028 --- [
main] com.tutorialspoint.demo.DemoApplication :
The following profiles are active: dev
Sekarang, Tomcat telah dimulai pada port 9090 (http) seperti yang ditunjukkan di bawah ini -
2017-11-26 08:13:20.185 INFO 14028 --- [
main] s.b.c.e.t.TomcatEmbeddedServletContainer :
Tomcat started on port(s): 9090 (http)
Anda dapat mengatur profil aktif Produksi seperti yang ditunjukkan di bawah ini -
Anda dapat melihat nama profil aktif di log konsol seperti yang ditunjukkan di bawah ini -
2017-11-26 08:13:16.322 INFO 14028 --- [
main] com.tutorialspoint.demo.DemoApplication :
The following profiles are active: prod
Sekarang, Tomcat mulai pada port 4431 (http) seperti yang ditunjukkan di bawah ini -
2017-11-26 08:13:20.185 INFO 14028 --- [
main] s.b.c.e.t.TomcatEmbeddedServletContainer :
Tomcat started on port(s): 4431 (http)
Profil aktif musim semi untuk application.yml
Mari kita pahami bagaimana menjaga profil aktif Spring untuk application.yml. Kita dapat menyimpan properti profil aktif Spring dalam satuapplication.ymlmengajukan. Tidak perlu menggunakan file terpisah seperti application.properties.
Berikut ini adalah contoh kode untuk mempertahankan profil aktif Spring di file application.yml. Perhatikan bahwa pembatas (---) digunakan untuk memisahkan setiap profil dalam file application.yml.
spring:
application:
name: demoservice
server:
port: 8080
---
spring:
profiles: dev
application:
name: demoservice
server:
port: 9090
---
spring:
profiles: prod
application:
name: demoservice
server:
port: 4431
Untuk perintah untuk mengatur profil aktif pengembangan diberikan di bawah ini -
Anda dapat melihat nama profil aktif di log konsol seperti yang ditunjukkan di bawah ini -
2017-11-26 08:41:37.202 INFO 14104 --- [
main] com.tutorialspoint.demo.DemoApplication :
The following profiles are active: dev
Sekarang, Tomcat mulai pada port 9090 (http) seperti yang ditunjukkan di bawah ini -
2017-11-26 08:41:46.650 INFO 14104 --- [
main] s.b.c.e.t.TomcatEmbeddedServletContainer :
Tomcat started on port(s): 9090 (http)
Perintah untuk mengatur profil aktif Produksi diberikan di bawah ini -
Anda dapat melihat nama profil aktif di log konsol seperti yang ditunjukkan di bawah ini -
2017-11-26 08:43:10.743 INFO 13400 --- [
main] com.tutorialspoint.demo.DemoApplication :
The following profiles are active: prod
Ini akan memulai Tomcat pada port 4431 (http) seperti yang ditunjukkan di bawah ini:
2017-11-26 08:43:14.473 INFO 13400 --- [
main] s.b.c.e.t.TomcatEmbeddedServletContainer :
Tomcat started on port(s): 4431 (http)