Cara Mengubah Port Default di Spring Boot

1. Perkenalan

Spring Boot menyediakan default yang masuk akal untuk banyak properti konfigurasi. Namun, terkadang kami perlu menyesuaikan ini dengan nilai khusus kasus kami.

Kasus penggunaan yang umum adalah mengubah port default untuk server tertanam .

Dalam tutorial singkat ini, kami akan membahas beberapa cara untuk mencapai ini.

2. Menggunakan File Properti

Cara tercepat dan termudah untuk menyesuaikan Spring Boot adalah dengan mengganti nilai properti default.

Untuk port server, properti yang ingin kita ubah adalah server.port .

Secara default, server tertanam dimulai pada port 8080. Mari kita lihat bagaimana kita dapat memberikan nilai yang berbeda dalam file application.properties :

server.port=8081

Sekarang server akan mulai pada port 8081.

Demikian pula, kita dapat melakukan hal yang sama jika kita menggunakan file application.yml :

server: port : 8081

Kedua file tersebut dimuat secara otomatis oleh Spring Boot jika ditempatkan di direktori src / main / resources dari aplikasi Maven.

2.1. Pelabuhan Khusus Lingkungan

Jika kami memiliki aplikasi yang diterapkan di lingkungan yang berbeda, kami mungkin ingin menjalankannya di port yang berbeda di setiap sistem.

Kita dapat dengan mudah mencapai ini dengan menggabungkan pendekatan file properti dengan profil Spring. Secara khusus, kita dapat membuat file properti untuk setiap lingkungan.

Misalnya, kita akan memiliki file application-dev.properties dengan konten:

server.port=8081

Kemudian, kami akan menambahkan file application-qa.properties dengan port berbeda:

server.port=8082

Konfigurasi file properti seharusnya cukup untuk banyak kasus.

Namun, ada opsi lain untuk tujuan ini, jadi mari kita jelajahi juga.

3. Konfigurasi Programatis

Kami dapat mengkonfigurasi port secara terprogram dengan mengatur properti tertentu saat memulai aplikasi atau dengan menyesuaikan konfigurasi server tertanam.

Pertama, mari kita lihat cara menyetel properti di kelas utama @SpringBootApplication :

@SpringBootApplication public class CustomApplication { public static void main(String[] args) { SpringApplication app = new SpringApplication(CustomApplication.class); app.setDefaultProperties(Collections .singletonMap("server.port", "8083")); app.run(args); } }

Selanjutnya, untuk menyesuaikan konfigurasi server, kita harus mengimplementasikan antarmuka WebServerFactoryCustomizer :

@Component public class ServerPortCustomizer implements WebServerFactoryCustomizer { @Override public void customize(ConfigurableWebServerFactory factory) { factory.setPort(8086); } }

Perhatikan bahwa ini berlaku untuk versi Spring Boot 2.x.

Untuk Spring Boot 1.x, kami juga dapat mengimplementasikan antarmuka EmbeddedServletContainerCustomizer .

4. Menggunakan Argumen Baris Perintah

Saat memaketkan dan menjalankan aplikasi kita sebagai jar, kita dapat mengatur argumen server.port dengan perintah java :

java -jar spring-5.jar --server.port=8083

Atau dengan menggunakan sintaks yang setara:

java -jar -Dserver.port=8083 spring-5.jar

5. Urutan Evaluasi

Sebagai catatan terakhir, mari kita lihat urutan pendekatan ini dievaluasi oleh Spring Boot.

Pada dasarnya, prioritas konfigurasi adalah:

  • konfigurasi server tertanam
  • argumen baris perintah
  • file properti
  • utama konfigurasi @SpringBootApplication

6. Kesimpulan

Dalam tutorial singkat ini, kami melihat cara mengonfigurasi port server di aplikasi Spring Boot.

Kode sumber untuk contoh tersedia di GitHub.