Wie bereits erwähnt, ist die Datei application.properties nicht konfiguriert. Jetzt erstelle ich eine neue Datei application.properties im Ordner main/resources und schreibe die folgende Konfiguration
Dann starten Sie das Projekt, Okay, auf dem Screenshot des Startergebnisses oben können Sie sehen, dass der Dienst auf Port „9090“ gestartet wird. Wenn Sie dann eine application.yml-Datei in diesem Verzeichnis konfigurieren, sehen Sie, dass der Dienst weiterhin auf Port „9090“ gestartet ist. Aus diesem Grund ziehen wir folgende Schlussfolgerung: Wenn sich zwei Dateien application.properties und application.yml im selben Ordner befinden, überschreibt die Datei application.properties die Datei application.yml und die Datei application.properties wird wirksam. Was ist eine YML-Datei?
Yml ist ein von YAML (YAML Aint Markup Language) geschriebenes Dateiformat, das eine sehr intuitive Möglichkeit zur Serialisierung von Daten darstellt. Es handelt sich ganz einfach um ein neues Dateiformat, ähnlich wie XML und Eigenschaftendateien.
2. Kann sich die Datei application.properties/.yml in anderen Pfaden befinden?
Freunde, die diesen Titel gesehen haben, werden sich sicherlich fragen, ob sich application.properties in anderen Pfaden befinden könnte. Wir legen application.properties/.yml im Ordner main/resources ab. Wenn das Projekt ausgeführt wird, werden die Dateien in diesem Ordner in den Klassenordner kopiert, daher wird dieser Pfad auch als Klassenpfad bezeichnet.
Suchen Sie im Springboot-Quellcode nach „application.properties“ und finden Sie eine Klasse wie ConfigFileApplicationListener. In den Kommentaren dieser Klasse gibt es den folgenden Absatz:* {@link EnvironmentPostProcessor} that configures the context environment by loading * properties from well known file locations. By default properties will be loaded from * 'application.properties' and/or 'application.yml' files in the following locations: * <ul> * <li>file:./config/</li> * <li>file:./config/{@literal *}/</li> * <li>file:./</li> * <li>classpath:config/</li> * <li>classpath:</li> * </ul>
// Note the order is from least to most specific (last one wins) private static final String DEFAULT_SEARCH_LOCATIONS = "classpath:/,classpath:/config/,file:./,file:./config/*/,file:./config/";
Schauen Sie sich an, welcher Port gerade verwendet wird.
verwendet 9092, was bedeutet, dass resources/config eine höhere Priorität hat als resources, also classpath:/config/>classpath:/. Werfen wir einen Blick auf file:/ . Wir haben eine neue application.properties-Datei im Stammpfad des Projekts erstellt. Schauen wir uns an, welchen Port der Dienst verwendet 9093. , die Priorität ist: file:/>classpath:/config/>classpath:/. Jetzt füge ich den Pfad config/my/ zum Projektpfad hinzu und füge die Datei application.properties hinzu Die Testergebnisse sind wie folgt:Der Dienst wird auf Port „9094“ gestartet, was darauf hinweist, dass die Priorität lautet: file:./config/*/>file:./>classpath:/>classpath:/config/ und der letzte Überprüfungspunkt ist file:/config, ich denke, dies muss nicht überprüft werden und muss die höchste Priorität haben: file:./config/ > file:./ > classpath:/ > classpath:/config/, für Laien: config unter dem Projekt-Root-Pfad>config/*/ unter dem Projekt-Root-Pfad>Project-Root-Pfad>classpath:/config>classpath:/
Das obige ist der detaillierte Inhalt vonWas sind die Standardladepfade von Springboot?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!