Entwickler, die die Eigenschaften im Frühjahr nicht verstehen, sind möglicherweise ein bisschen verwirrend, vor allem, weil es viele Konfigurationsmethoden und viele Verwendungsmethoden gibt.
Dieser Artikel ist kein Artikel für die Analyse oder Quellcodeanalyse, aber ich hoffe, er kann den Lesern helfen, Springeigenschaften besser zu verstehen und zu verwenden.
Verwendung von Eigenschaften
Alle Leser dieses Artikels haben den Frühling verwendet. Schauen wir uns zunächst an, wie Eigenschaften verwendet werden. Im Frühjahr gibt es mehrere häufig verwendete Methoden:
1. Verwenden Sie in der XML -Konfigurationsdatei
Das heißt, der Wert in $ {} wird automatisch ersetzt.
<bean id = "xxx"> <Eigenschaft name = "url" value = "$ {javadoop.jdbc.url}" /> < /bean>2. Verwenden Sie über @Value Injection
@Value ("$ {javadoop.jdbc.url}") private String url;3. Durch Umwelt erhalten
In dieser Methode gibt es einige Dinge zu achten. Nicht alle Konfigurationsmethoden unterstützen das Erhalten von Eigenschaftswerten über die Umgebungsschnittstelle. Persönlicher Test kann nur verwendet werden, wenn die Annotation @PropertySource verwendet wird, ansonsten wird Null erhalten. Wie Sie es konfigurieren, werde ich unten unmittelbar darüber sprechen.
@AutowiredPrivate Environment Env; public String geturl () {return env.getProperty ("javadoop.jdbc.url");};Wenn es bei Spring Boot Application.Properties registriert ist, ist das in Ordnung.
Eigenschaftenkonfiguration
Wir haben früher erwähnt, wie man die von uns konfigurierten Eigenschaften verwendet. Wie konfigurieren Sie sie also? Feder bietet viele Konfigurationsmethoden.
1. Konfigurieren Sie über XML
Das Folgende ist die am häufigsten verwendete Konfigurationsmethode, und viele Projekte werden so geschrieben:
<Kontext: Immobilien-PlaceHolder-Standort = "ClassPath: sys.Properties" />
2. Konfigurieren Sie über @PropertySource
Die vorherige XML -Konfiguration ist sehr häufig. Wenn Sie jedoch auch einen Drang haben, alle XML -Konfigurationsdateien zu beseitigen, sollten Sie die folgende Methode verwenden:
@PropertySource ("ClassPath: sys.Properties")@configurationPublic Class Javadoopconfig {}Beachten Sie, dass @PropertySource hier mit @Configuration verwendet werden muss, damit ich nicht auf Details eingehe.
A
Wenn die Leser dies gesehen haben, spielt es keine Rolle, ob sie überrascht sind. So wurde es vor dem Frühjahr 3.1 verwendet:
<Bean> <Property name = "Positionen"> <list> <Wert> classPath: sys.properties </value> </list> </property> <Eigenschaft name = "IgnoreUnResolvable PlaceHolders" Value = "True"/> <!-Einige Eigenschaften können hier konfiguriert werden-> </bean> konfiguriert werden
Natürlich können wir auch die entsprechende Java -Konfigurationsversion verwenden:
@BeanPublic PropertyPlaPleholderConFigurer Propertiess () {PropertyPlaceHoldConFigurer PPC = new PropertyPlaPleholderConFigurer (); Ressourcen [] ressourcen = new classpathresource [] {new classpathresource ("sys.Properties")}; ppc.setlocations (Ressourcen); ppc.setignoreUnResolvablePlacePlacePlace (true); PPC zurückgeben;}4.. PropertySourcesPlaceHoldConFigurer
Beim Start des Frühlings 3.1 wurde PropertySourcesaPlaceHoldConfiger eingeführt, eine neue Klasse. Bitte beachten Sie, dass im Namen des vorherigen PropertyPlacePlaTeholderConFigurer zusätzliche Quellen vorhanden sind, und das Paket, zu dem es gehört, ist unterschiedlich. Es ist im Frühjahrskontextpaket.
Es gibt keinen Unterschied in der Konfiguration:
<Bean> <Property name = "Positionen"> <list> <Wert> classPath: sys.properties </value> </list> </property> <Eigenschaft name = "IgnoreUnResolvable PlaceHolders" Value = "True"/> <!-Einige Eigenschaften können hier konfiguriert werden-> </bean> konfiguriert werden
Lassen Sie uns auch eine Java -Konfigurationsversion haben:
@BeanPublic PropertySourCESPLACEPLECONCONFIGUR -Properties () {PropertySourCESPLACEDHALTORCONFIGURER PSPC = NEW PropertySourcesPlacePlaceConFigurer (); Ressourcen [] ressourcen = new classpathresource [] {new classpathresource ("sys.Properties")}; PSPC.Setlocations (Ressourcen); PSPC.SetignoreUnResolvable PlacePlaceHolders (true); PSPC zurückgeben;}Federschuh verwandt
Spring Boot ist wirklich eine gute Sache und es fühlt sich so gut an, ihn aus der Schachtel zu verwenden. Hier finden Sie eine kurze Einführung in den relevanten Inhalt.
Erstellen Sie schnell ein Spring Boot -Projekt: https://start.spring.io/
application.Properties
Jedes Projekt hat standardmäßig eine Anwendung.Properties -Datei. Diese Konfigurationsdatei muss nicht wie zuvor erwähnt registriert werden. Spring Boot hilft uns, sich automatisch zu registrieren.
Vielleicht können Sie den Namen natürlich ändern. Geben Sie einfach Ihren Dateinamen an, wenn Sie beginnen:
java -dspring.config.location = classPath: sys.properties -jar app.jar
application- {env} .Properties
Um verschiedene Konfigurationen für verschiedene Umgebungen anzugeben, werden wir dies verwenden.
Beispielsweise ist die Datenbankverbindungsinformationen der Testumgebung und der Produktionsumgebung unterschiedlich.
Daher müssen wir basierend auf application.Properties neue Anwendungs-Dev.Properties und Application-PRD.Properties erstellen, um umgebungsbezogene Informationen zu konfigurieren, und dann die Umgebung beim Starten angeben.
java -dspring.profiles.active = prd -jar App.jar
Das Ergebnis besteht Wenn es doppelte Schlüssel gibt, ist die Priorität in den Anwendungs-PRD.Properties-Dateien höher.
@ConfigurationProperties
Diese Annotation ist nur im Spring Boot erhältlich.
Auch wenn Sie diese Annotation nicht verwenden, sehen Sie dies möglicherweise in einem Open -Source -Projekt. Hier ist eine kurze Einführung.
Nehmen wir ein Beispiel, um intuitiver zu sein. Wie bereits erwähnt, geben Sie die folgenden Informationen in der Konfigurationsdatei ein, können Sie an application.Properties schreiben oder die im erste Abschnitt eingeführte Methode verwenden.
javadoop.database.url = jdbc: mysql: javadoop.database.username = adminjavadoop.database.password = admin123456
Java -Datei:
@Configuration@configurationProperties (Präfix = "javadoop.database") öffentliche Klassendatenbank {String url; String Benutzername; String -Passwort; // Getters und Setter}Auf diese Weise wird eine Typ -Datenbank automatisch im Federcontainer registriert und die Eigenschaften werden festgelegt.
Ändern Sie die Attributwerte während des Starts dynamisch
Ich denke nicht, dass dies zu viel Einführung benötigt, und diejenigen, die Spring Boot verwenden, sollten es im Grunde wissen.
Die Attributkonfiguration hat eine Überschreibungsreihenfolge, dh wenn der gleiche Schlüssel angezeigt wird, muss der Wert vorherrschen.
Startparameter> application- {env} .Properties> application.Properties
Startparameter starten dynamisch Eigenschaften:
java -djavadoop.database.password = admin4321 -jar app.jar
Darüber hinaus können Sie auch Systemumgebungsvariablen verwenden, um Eigenschaften festzulegen, zufällige Zahlen usw. anzugeben usw., was in der Tat sehr flexibel ist, aber es ist nutzlos, sodass ich sie nicht vorstellen werde.
Zusammenfassen
Wenn die Leser ein tieferes Verständnis der Federeigenschaften haben möchten, müssen sie den Quellcode im Zusammenhang mit der Schnittstelle für die Frühlingsumgebung verstehen. Interessierte Leser werden empfohlen, nach dem Quellcode zu suchen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.