2016-04-26 30 views
5

Tôi thực sự mới đến mùa xuân. Tôi sử dụng tính năng cấu hình bên ngoài được cung cấp bởi khởi động mùa xuân. Nó hoạt động tốt và tôi đã sử dụng nó trong một số lớp cấu hình, thường chỉ với các giá trị mặc định. Bây giờ tôi muốn có cái nhìn tổng quan về các thuộc tính cấu hình mà tôi đã sử dụng. Điều đó có nghĩa là tôi cần biết tất cả các thuộc tính được đặt với @Value(...) hoặc hoặc với @ConfigurationProperties(prefix = ...). Có cách nào để lấy thông tin này từ Spring không? Tôi có thể làm điều này với sự phản xạ nhưng tôi nghĩ đây không phải là cách tốt nhất.Có cách nào để lấy tên của tất cả các thuộc tính cấu hình trong Spring boot không?

+3

Chức năng truyền động trong khởi động mùa xuân sẽ hiển thị chúng dưới dạng một trong các điểm cuối, vì vậy bạn có thể xem nguồn và xem chúng đang hoạt động như thế nào. – cjstehno

+0

Ok, cảm ơn. Tôi đã sử dụng điểm cuối [configprops] (https://github.com/spring-projects/spring-boot/blob/10012cfddc5479ee9a5cbe98bfe4f76483965bd1/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/ ConfigurationPropertiesReportEndpoint.java) để kiểm tra nó, nhưng nó chỉ hoạt động cho các thành viên public được cấu hình bởi '@ConfigurationProperties (prefix = ...)'. – Chris

+0

Bạn có thể thử điểm cuối của thiết bị truyền động Spring của bên thứ ba để hiển thị các thuộc tính và siêu dữ liệu cấu hình Spring của chúng. Tùy chọn lọc/bao gồm/loại trừ: https://github.com/ethlo/spring-actuator-addons/tree/master/spring-actuator-config –

Trả lời

0

Nếu bạn đang sử dụng STS thì có trình chỉnh sửa đặc biệt cho tệp ứng dụng.properties có tính năng tự động hoàn thành. Nếu bạn đang sử dụng Eclipse, bạn phải vào lớp mà bạn muốn cấu hình và kiểm tra các chú thích @Value trong mã.

+1

Cảm ơn, nhưng điều này không giải quyết được vấn đề của tôi. Tôi muốn có thể mở rộng chương trình bằng myselve hoặc cung cấp cho các nhà phát triển khác, những người mở rộng nó mà không cần viết mọi mục nhập cấu hình bằng tay đến tệp thuộc tính. Vì vậy, tôi đã hy vọng, rằng nó sẽ có thể viết toàn bộ cấu hình bao gồm các giá trị mặc định vào một tập tin thuộc tính mới sau khi chương trình đã bắt đầu. Bằng cách sử dụng trình soạn thảo STS, tôi vẫn cần ghi lại cấu hình bằng tay khi biết tất cả các thuộc tính cấu hình. – Chris

+0

Bạn có thể tạo tệp có tên META-INF/bổ sung-spring-configuration-metadata.json và thêm nội dung như sau: {"properties": [{ "name": "my.att", "type" : "java.lang.String", "description": "Một mô tả cho 'my.att" }]} Trong bạn application.properties bạn có thể thêm: my.att = 20 Sử dụng STS , tính năng tự động điền sẽ có sẵn với mô tả được cung cấp trong tệp siêu dữ liệu. Thông tin thêm tại đây: https://docs.spring.io/spring-boot/docs/current/reference/html/configuration-metadata.html – Sigrist

+0

Đó là cách có thể cho các nhà phát triển chương trình. Nhưng điều tôi muốn là cho phép người dùng của chương trình (không có trình chỉnh sửa đặc biệt) tạo lại cấu hình mặc định (ví dụ: trong trường hợp cấu hình hiện tại bị hỏng) chỉ bằng cách xóa tệp cấu hình và khởi động lại chương trình. Vì vậy, tôi cần phải biết liệu có một lớp tôi có thể ghi đè lên và nhận được các thông tin cần thiết để tạo ra một tập tin cấu hình mặc định. – Chris

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