Heim  >  Artikel  >  Java  >  So beheben Sie den Fehler, wenn Springboot application.yml liest

So beheben Sie den Fehler, wenn Springboot application.yml liest

PHPz
PHPznach vorne
2023-05-22 11:49:051945Durchsuche

springboot hat beim Lesen von application.yml einen Fehler gemeldet

Beim Start des Springboot-Projekts ist beim Lesen der Konfigurationsdatei ein Fehler aufgetreten

Die Fehlermeldung lautet wie folgt

Fehler beim Laden der Eigenschaftsquelle vom Speicherort „classpath:/application“. yml'
......
org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1

Bei der Suche nach Informationen wird im Wesentlichen festgestellt, dass der Grund ein Problem mit dem ist Dateikodierungsformat (die ursprüngliche YML-Datei ist im GBK-Format), also wurde das GBK-Format in UTF-8 geändert. Nach der Änderung stellte ich fest, dass die chinesischen Kommentare in der vorherigen Datei verstümmelt waren. Die Ursache des Problems sollte hier liegen , also habe ich alle Kommentare gelöscht und normal neu gestartet.

Hinweis: Überprüfen Sie nach der Änderung des Dateiformats, ob verstümmelte Zeichen vorhanden sind und auch Kommentare betroffen sind.

@Value liest Application.yml als null

Projektanforderungen

In SpringBoot gibt es eine fest codierte URL und es wird eine http-Anfrage gesendet, um eine Videoadresse zu erhalten.

So beheben Sie den Fehler, wenn Springboot application.yml liest

Die ursprüngliche Idee war so, und dann dachte ich, dass das Schreiben auf diese Weise nicht flexibel genug sei. Da es sich um ein SpringBoot-Projekt handelt, ist es sehr praktisch, die URL direkt in der Konfigurationsdatei abzurufen.

So beheben Sie den Fehler, wenn Springboot application.yml liest

Dann verwendet der Feind, der den Wert erhalten muss, die @VALUE-Annotation, um

So beheben Sie den Fehler, wenn Springboot application.yml liest

zu erhalten, aber die URL kann nicht abgerufen werden und bleibt leer.

Lösung

Endlich habe ich herausgefunden, dass ich diese Variable zuvor mit Static geändert hatte. Static initialisiert Variablen, bevor die Klasse geladen wird. Daher wird @VALUE zu diesem Zeitpunkt nicht wirksam. Für NULL

muss also nur die statische Aufladung entfernt werden.

So beheben Sie den Fehler, wenn Springboot application.yml liest

Das obige ist der detaillierte Inhalt vonSo beheben Sie den Fehler, wenn Springboot application.yml liest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen