2015-04-20 15 views
6

Tôi có một ứng dụng khởi động mùa xuân được cấu hình bằng tệp yml. Có thể ghi đè lên các thuộc tính này khi thực hiện bình không? Ví dụ, giả sử tôi có biến đầu vào trong tập tin yml được đặt thành user1 và tôi muốn thực thi jar với user2. Có thể làm điều gì đó như thế này không?Ghi đè cấu hình yml trong spring-boot với đối số dòng lệnh

java -jar --input=user2 
+0

Theo tài liệu, nó là possib le http://docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/htmlsingle/#boot-features-external-config-command-line-args Bạn đã thử chưa? –

+0

Có, điều này là có thể. Tôi ghi đè lên cổng tomcat của tôi được định nghĩa trong tệp application.yml là máy chủ: cổng: $ {port: 8080} sử dụng --server.port = 8090 – ufdeveloper

Trả lời

1

Xây dựng answer by cLyric, bạn có thể làm điều này:

java -jar yourapp.jar --input=user2 

Hoặc nếu bạn muốn cung cấp sử dụng json, bạn có thể làm

java -jar yourapp.jar --spring.application.json='{"input":"user2"}' 

Hoặc nếu bạn đang ở trong unix/linux,

SPRING_APPLICATION_JSON='{"input":"user2"}' java -jar yourapp.jar 
+0

Trong dự án của tôi, nó không hoạt động trên "java -jar app.jar --input = user2 "nhưng hoạt động tốt với" java -Dinput = user2 -jar app.jar ". Nhưng với lệnh thứ hai không thể ghi đè cấu hình trong application.properties –

+0

@free 斩 lệnh thứ hai là khác nhau, không liên quan đến khởi động mùa xuân. Có lẽ bạn nên mở một câu hỏi khác nếu kiểu '--input' chuẩn là vì một số lý do không hoạt động. – eis

+0

http://stackoverflow.com/questions/42244380/override-yml-configuration-in-spring-boot-with-command-line-arguments-not-work –

Các vấn đề liên quan