Cara Menukar Port Default di Spring Boot

1. Pengenalan

Spring Boot memberikan lalai yang wajar untuk banyak sifat konfigurasi. Namun, kadangkala kita perlu menyesuaikannya dengan nilai khusus kes kita.

Kes penggunaan biasa adalah menukar port lalai untuk pelayan terbenam .

Dalam tutorial ringkas ini, kami akan membahas beberapa cara untuk mencapainya.

2. Menggunakan Fail Harta

Cara terpantas dan termudah untuk menyesuaikan Spring Boot adalah dengan mengesampingkan nilai sifat lalai.

Untuk port pelayan, harta yang ingin kita ubah adalah server.port .

Secara lalai, pelayan terbenam bermula di port 8080. Mari lihat bagaimana kita dapat memberikan nilai yang berbeza dalam fail application.properties :

server.port=8081

Sekarang pelayan akan bermula di port 8081.

Begitu juga, kita boleh melakukan perkara yang sama jika kita menggunakan fail application.yml :

server: port : 8081

Kedua-dua fail dimuat secara automatik oleh Spring Boot jika diletakkan di direktori src / main / resources aplikasi Maven.

2.1. Pelabuhan Khusus Alam Sekitar

Sekiranya kita memiliki aplikasi yang disebarkan di lingkungan yang berbeda, kita mungkin menginginkannya berjalan di port yang berbeda pada setiap sistem.

Kami dapat mencapainya dengan mudah dengan menggabungkan pendekatan fail harta tanah dengan profil Spring. Secara khusus, kita dapat membuat fail harta tanah untuk setiap lingkungan.

Sebagai contoh, kami akan mempunyai fail application-dev.properties dengan kandungan:

server.port=8081

Kemudian, kami akan menambah fail aplikasi-qa.properties lain dengan port yang berbeza:

server.port=8082

Konfigurasi fail harta tanah harus mencukupi untuk kebanyakan kes.

Walau bagaimanapun, ada pilihan lain untuk tujuan ini, jadi mari kita menerokainya juga.

3. Konfigurasi Terprogram

Kita dapat mengkonfigurasi port secara terprogram dengan menetapkan properti tertentu ketika memulakan aplikasi atau dengan menyesuaikan konfigurasi pelayan terbenam.

Pertama, mari kita lihat cara menetapkan harta tanah di kelas @SpringBootApplication utama :

@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); } }

Seterusnya, untuk menyesuaikan konfigurasi pelayan, kita harus melaksanakan antara muka WebServerFactoryCustomizer :

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

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

Untuk Spring Boot 1.x, kita juga boleh melaksanakan antara muka EmbeddedServletContainerCustomizer .

4. Menggunakan Argumen Baris Perintah

Semasa mengemas dan menjalankan aplikasi kita sebagai balang, kita dapat menetapkan 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. Susunan Penilaian

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

Pada asasnya, keutamaan konfigurasi adalah:

  • konfigurasi pelayan terbenam
  • hujah baris perintah
  • fail harta tanah
  • konfigurasi utama @SpringBootApplication

6. Kesimpulannya

Dalam tutorial ringkas ini, kami melihat cara mengkonfigurasi port pelayan dalam aplikasi Spring Boot.

Kod sumber untuk contoh boleh didapati di GitHub.