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
- 1. Czy istnieje sposób na uzyskanie wszystkich wartości w NSUserDefaults?
- 2. Czy istnieje sposób na uzyskanie zlokalizowanych nazw popularnych przycisków dialogowych?
- 3. Czy istnieje sposób na uzyskanie wszystkich zarządzanych jednostek z EntityManager
- 4. C# uzyskanie wszystkich właściwości obiektu
- 5. Czy istnieje sposób na zresetowanie wszystkich właściwości statycznych określonej klasy?
- 6. Czy istnieje sposób na poprawne włączenie funkcji spring-batch-adm i spring-boot?
- 7. Czy istnieje sposób na uzyskanie obwiedni (w pikselach) elementu DOM?
- 8. Czy istnieje sposób na uzyskanie REPL w pydev?
- 9. Spring boot application.properties rozszerza inny plik właściwości
- 10. Czy istnieje sposób na nadanie konkretnych nazw pozycjom Tuple?
- 11. Spring Boot @EnableScheduling warunkowo
- 12. Używanie właściwości Maven w application.properties w Spring Boot
- 13. Czy istnieje sposób na uzyskanie domyślnego obiektu $ .ajax?
- 14. Spring-boot: ustaw domyślną wartość konfigurowalnych właściwości
- 15. Czy istnieje sprytny sposób na uzyskanie sortable target w jQueryUI
- 16. Czy istnieje łatwy sposób na uzyskanie nazwy ServerName w Symfony?
- 17. Czy istnieje sposób na uzyskanie identyfikatora pakietu w czasie wykonywania?
- 18. Czy istnieje sposób na uzyskanie wyjątku w Haskell?
- 19. Czy istnieje prosty sposób na uzyskanie wymiarów obrazu w Ruby?
- 20. Czy istnieje sposób na uzyskanie ograniczeń tabeli w SQLite?
- 21. Czy istnieje sposób na uzyskanie ruchów obiektów całkowitych w vim?
- 22. Czy istnieje sposób na uzyskanie pi w arkuszu kalkulacyjnym CSS?
- 23. Czy istnieje sposób na uzyskanie CSS XSS w nowoczesnych przeglądarkach?
- 24. W Firebase, czy istnieje sposób na uzyskanie liczby dzieci węzła bez ładowania wszystkich danych węzła?
- 25. Czy istnieje sposób na uzyskanie wszystkich kluczy z wartości w multimapie?
- 26. Czy istnieje sposób na uzyskanie IEqualityComparer od programu IComparer?
- 27. Konwertuj istniejącą aplikację Spring na Spring-Boot
- 28. Delphi - Czy istnieje lepszy sposób na uzyskanie skrótów stanu od nazw stanu?
- 29. @EnableTransactionManagement w Spring Boot
- 30. Czy istnieje sposób na uzyskanie SQL utworzony przez kwerendę LINQ?
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 –