1. Ikhtisar
Spring Boot, secara default, menyajikan konten di jalur konteks root ("/") .
Dan meskipun, biasanya, adalah ide yang baik untuk lebih memilih konvensi daripada konfigurasi, ada kasus ketika kita memang ingin memiliki jalur kustom.
Dalam tutorial singkat ini, kami akan membahas berbagai cara untuk mengkonfigurasinya.
2. Mengatur Properti
Sama seperti banyak opsi konfigurasi lainnya, jalur konteks di Spring Boot dapat diubah dengan menyetel properti, yaitu server.servlet.context-path .
Perhatikan bahwa ini berfungsi untuk Spring Boot 2.x.
Untuk Boot 1.x, propertinya adalah server.context-path .
Ada beberapa cara untuk menyetel properti ini, mari kita lihat satu per satu.
2.1. Menggunakan application.properties / yml
Cara paling mudah untuk mengubah jalur konteks adalah dengan menyetel properti di file application.properties / yml :
server.servlet.context-path=/baeldung
Daripada meletakkan file properti di src / main / resources , kita juga bisa menyimpannya di direktori kerja saat ini (di luar classpath).
2.2. Properti Sistem Java
Kita juga bisa menyetel jalur konteks sebagai properti sistem Java bahkan sebelum konteks diinisialisasi:
public static void main(String[] args) { System.setProperty("server.servlet.context-path", "/baeldung"); SpringApplication.run(Application.class, args); }
2.3. Variabel Lingkungan OS
Spring Boot juga dapat mengandalkan variabel lingkungan OS. Pada sistem berbasis Unix kita dapat menulis:
$ export SERVER_SERVLET_CONTEXT_PATH=/baeldung
Di Windows, perintah untuk menyetel variabel lingkungan adalah:
> set SERVER_SERVLET_CONTEXT_PATH=/baeldung
The variabel lingkungan di atas adalah untuk Spring Boot 2.xx , Jika kita memiliki 1.xx , variabel adalah SERVER_CONTEXT_PATH .
2.4. Argumen Baris Perintah
Kita juga dapat menyetel properti secara dinamis melalui argumen baris perintah:
$ java -jar app.jar --server.servlet.context-path=/baeldung
3. Menggunakan Java Config
Sekarang mari kita atur jalur konteks dengan mengisi pabrik kacang dengan kacang konfigurasi.
Dengan Spring Boot 2, kita dapat menggunakan WebServerFactoryCustomizer :
@Bean public WebServerFactoryCustomizer webServerFactoryCustomizer() { return factory -> factory.setContextPath("/baeldung"); }
Dengan Spring Boot 1, kita dapat membuat instance EmbeddedServletContainerCustomizer :
@Bean public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() { return container -> container.setContextPath("/baeldung"); }
4. Urutan Prioritas Konfigurasi
Dengan banyaknya opsi ini, kami mungkin akan memiliki lebih dari satu konfigurasi untuk properti yang sama.
Berikut urutan prioritas dalam urutan menurun, yang digunakan Spring Boot untuk memilih konfigurasi yang efektif:
- Konfigurasi Java
- Argumen Baris Perintah
- Properti Sistem Java
- Variabel Lingkungan OS
- application.properties di Direktori Saat Ini
- application.properties di classpath ( src / main / resources atau file jar yang dikemas)
5. Kesimpulan
Dalam artikel ini, kami dengan cepat membahas berbagai cara untuk menyetel jalur konteks, atau properti konfigurasi lainnya, dalam aplikasi Spring Boot.