Cách sửa đổi port mặc định trong Spring Boot

Spring boot hỗ trợ cấu hình tự động cho phép chúng ta khởi chạy một ứng dụng Spring nhanh nhất có thể. Trong đó Port mặc định mà Spring Boot sử dụng cho ứng dụng server là 8080. 

Nếu không muốn sử dụng Port mặc định mà Spring Boot đã cấu hình sẵn, chúng ta có một số cách để thay đổi sẽ được trình bày ngay sau đây.

Đổi port với Property file

Cách nhanh nhất và dễ nhất để tùy chỉnh Spring Boot là ghi đè các giá trị của các thuộc tính mặc định.

Đối với Port Server, thuộc tính chúng ta cần thay đổi là server.port.

Mặc định, server sẽ khởi chạy trên port 8080, chúng ta có thể thay đổi điều này bắt cách điều chỉnh giá trị server.port trong application.properties hayapplication.yml tương ứng.

application.properties

server.port=8081

application.yml

server:
  port : 8081

Bây giờ, server sẽ chạy trên port 8081.

Cả hai tệp đều được Spring Boot tải tự động nếu được đặt trong thư mục src / main / resources của ứng dụng Maven.

 Environment-Specific Ports

Nếu chúng ta có một ứng dụng được triển khai trong các môi trường khác nhau, chúng tôi có thể muốn nó chạy trên các cổng khác nhau trên mỗi hệ thống.

Chúng ta có thể dễ dàng đạt được điều này bằng cách sử dụng Spring Profile với mỗi môi trường có một file cấu hình riêng.

Ví dụ application-dev.properties 

server.port=8081

Còn application-qa.properties sử dụng trong môi trường của qa để kiểm thử chạy ở port 8082

server.port=8082

Java Config

Chúng tôi có thể định cấu hình Port trong mã nguồn bằng cách đặt thuộc tính cụ thể khi khởi động ứng dụng hoặc bằng cách tùy chỉnh cấu hình của server.

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

Tiếp theo, để tùy chỉnh cấu hình server, chúng ta phải triển khai giao diện WebServerFactoryCustomizer:

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

Lưu ý rằng điều này áp dụng cho phiên bản Spring Boot 2.x. Đối với Spring Boot 1.x, chúng ta có thể triển khai tương tự giao diện EmbeddedServletContainerCustomizer.

Sử dụng CMD

Khi đóng gói và chạy ứng dụng của chúng ta dưới dạng jar, chúng ta có thể đặt đối số server.port bằng lệnh java:

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

Hoặc bằng cách sử dụng cú pháp tương đương:

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

Thứ tự ưu tiên

Ở trên chúng ta có nhiều cách để cấu hình Port cho server, nếu Port được cấu hình ở nhiều hơn 1 chỗ thì thứ tự ưu tiên là:

  • embedded server configuration
  • command line arguments
  • property files
  • main @SpringBootApplication configuration

Kết bài

Qua bài viết này, chúng ta đã biết cách chỉnh sửa port mặc định trong Spring. Các thường sử dụng là chỉnh trong các file cấu hình .properties hay .yml. Chúng ta ý nghĩa rất lớn khi phân chia môi trường và Port trên những môi trường này.

Nguồn tham khảo

https://www.baeldung.com/spring-boot-change-port#1-environment-specific-ports

 

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x