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)