Sie können keinen Dateisystemzugriff in der Cloud-Gießerei haben. Sie müssen die Konfigurationsdatei im Klassenpfad selbst behalten und die Eigenschaften aus dem Klassenpfad laden, was auch das Standardverhalten beim Spring-Boot ist. Spring boot application.properties Datei (die innerhalb src/main/resource ist) geht in Ihr jar und Federn lädt es. Wenn Sie also ein eingebettetes jar/war bauen, geht es in Klassenpfad und arbeitet direkt.
Der Cloud Gießerei Weg der Handhabung von Eigenschaften ist durch VCAP-Variablen. Sie können diese Eigenschaften mit dem Deplyoment-Manifest externalisieren, das während des CF-Push verwendet wird. Innerhalb Ihrer Manifest-XML-Datei definieren Sie die Eigenschaften wie folgt.
env:
myprop1: myvalue1
myprop2: myvalue2
Mit diesem Ansatz würden alle Eigenschaften für Ihre App als normale Systemeigenschaften verfügbar sein. Sie können auf sie in Ihrer Anwendung als System.getProperties() in Ihrem Java-Code zugreifen.
Der Hauptnachteil bei diesen beiden Ansätzen ist, dass die Anwendung in der Cloud Foundry neu erstellt/zurückgeschickt werden muss. Die Anwendung kann die Änderung in den Eigenschaften nicht dynamisch lesen, sobald die Anwendung ausgeführt wird.
Um diese Spring-Cloud zu überwinden, gibt es ein Projekt cloud-config. Dies kann durch GIT oder einige andere Datasource-Typen wie Dateisystem/Vault usw. unterstützt werden. Dies wird als ein anderer Konfigurationsdienst ausgeführt. Sie können den Konfigurationsserver in Ihrer Anwendungseigenschaftendatei definieren, die Anwendungsleseeigenschaften vom Konfigurationsdienst ausgibt.
Meistens, wenn Sie die Eigenschaften in einer Microservice-Architektur zentralisieren müssen, können Sie für den Config-Service-Ansatz gehen.
1. Warum bietet cloud gießery keinen Dateisystemzugriff an? – Tiya
2. Ich möchte, dass meine Spring-Boot-Anwendung nur einmal in der Cloud bereitgestellt wird.Ich möchte jedoch später den Inhalt meiner Eigenschaftendatei ändern können, ohne meine Spring-Boot-Anwendung in der Cloud neu bereitstellen zu müssen. Kann dies mit application.properties erreicht werden? Können wir die Anwendung .properties nur noch nach der Bereitstellung der Spring-Boot-Anwendung erneut laden? – Tiya
Cloud Foundry wird in einer virtuellen Umgebung ausgeführt. Jede Instanz der Anwendung wird in einem eigenen isolierten Container ausgeführt. Daher sind Dateisysteme nur vorübergehend. Lesen Sie diesen Link, um zu erfahren, wie Cloud Foundry funktioniert. https://docs.cloudfoundry.org/devguide/deploy-apps/prepare-to-deploy.html#filesystem Sie können keine Anwendungseigenschaften neu laden. Sobald Sie einige Eigenschaften geändert haben, müssen Sie sie neu erstellen und die App in die Cloud-Foundry verschieben. Möglicherweise müssen Sie den Cloud-Konfigurationsserver für Ihren Anwendungsfall verwenden. –