Mục lục
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