Jestem naprawdę nowy na wiosnę. Używam funkcji konfiguracji zewnętrznej dostarczanej przez sprężynę rozruchową. Działa dobrze i użyłem go w kilku klasach konfiguracji, często tylko z wartościami domyślnymi. Teraz chcę uzyskać przegląd właściwości konfiguracji, których użyłem. Oznacza to, że muszę znać wszystkie właściwości ustawione za pomocą @Value(...)
lub z @ConfigurationProperties(prefix = ...)
. Czy istnieje sposób, aby uzyskać te informacje od wiosny? Mogę to zrobić z refleksją, ale myślę, że to nie jest najlepszy sposób.Czy istnieje sposób na uzyskanie nazw wszystkich właściwości konfiguracyjnych w Spring boot?
Odpowiedz
Jeśli używasz STS, istnieje specjalny edytor pliku application.properties z funkcją automatycznego uzupełniania. Jeśli korzystasz z Eclipse, musisz przejść do klasy, którą chcesz skonfigurować i sprawdzić adnotacje @Value w kodzie.
Dzięki, ale to nie rozwiązuje mojego problemu. Chcę móc rozszerzyć program przez myselve lub przekazać go innym programistom, którzy rozszerzają go, bez ręcznego zapisywania każdego wpisu konfiguracji do pliku właściwości. Miałem więc nadzieję, że po uruchomieniu programu możliwe będzie zapisanie całej konfiguracji zawierającej wartości domyślne w nowym pliku właściwości. Korzystając z edytora STS, wciąż muszę napisać konfigrację ręcznie, znając wszystkie właściwości konfiguracji. – Chris
Można utworzyć plik o nazwie META-INF/additional-spring-configuration-metadata.json i dodać taką treść: {"properties": [{ "name": "my.att", "type" "java.lang.String" "description": "opis 'my.att'" }]} W tobie application.properties można dodać: my.att = 20 Korzystanie STS , autouzupełnianie będzie dostępne z opisem podanym w pliku metadanych. Więcej informacji tutaj: https://docs.spring.io/spring-boot/docs/current/reference/html/configuration-metadata.html – Sigrist
To jest możliwy sposób dla programistów programu. Ale to, czego chcę, to zezwolić na używanie programu (bez specjalnych edytorów) do odtworzenia domyślnej konfiguracji (na przykład w przypadku, gdy bieżąca konfiguracja jest uszkodzona) tylko poprzez usunięcie pliku konfiguracyjnego i ponowne uruchomienie programu. Muszę więc wiedzieć, czy istnieje klasa, którą mogę nadpisać i uzyskać potrzebne informacje, aby utworzyć domyślny plik konfiguracyjny. – Chris
Funkcja siłownika w rozruchu sprężynowym narazi je jako jeden z punktów końcowych, aby można było spojrzeć na źródło i zobaczyć, jak to robią. – cjstehno
Ok, dzięki. Użyłem [punktu końcowego configprops] (https://github.com/spring-projects/spring-boot/blob/10012cfddc5479ee9a5cbe98bfe4f76483965bd1/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/ ConfigurationPropertiesReportEndpoint.java), aby go przetestować, ale działa tylko dla publicznych elementów konfigurowanych przez '@ConfigurationProperties (prefix = ...)'. – Chris
Możesz wypróbować mój punkt końcowy sprężyny siłownika innej firmy, który eksponuje właściwości i ich metadane Spring config. Opcjonalne filtrowanie/obejmuje/wyklucza: https://github.com/ethlo/spring-actuator-addons/tree/master/spring-actuator-config –