Manchmal müssen wir die Eigenschaftenkonfigurationsdatei im Spring -Code direkt lesen. Wie machen wir das? Schauen wir uns den folgenden Inhalt an.
Wir alle wissen, dass Spring die Werte in Eigenschaften in @Value lesen kann. Konfigurieren Sie sie einfach in der Konfigurationsdatei
org.springframework.beans.factory.config.propertyPlaceHolpleConFigurer
<bean id = "PropertyConFigurer"> <Eigenschaft name = "location"> <wert> classPath: config.Properties </value> </property> </bean>
Wenn Sie diese verwenden müssen, um die Medianwerte von Eigenschaften zu erhalten, können Sie sie so verwenden
@Value ("$ {sql.name}") private String sqlname;Aber damit gibt es ein Problem. Jedes Mal, wenn ich den Wert in der Konfigurationsdatei verwende, muss ich eine lokale Variable deklarieren. Gibt es eine Möglichkeit, die Werte in der Konfigurationsdatei mit Code direkt zu lesen?
Die Antwort besteht
öffentliche Klasse PropertyPlaPleholder erweitert PropertyPlaPleholderConFigurer {private statische Karte <String, String> PropertyMap; @Override Protected void ProcessProperties (configurablElistableBeanFactory beanfactoryToprocess, Eigenschaften, Props) löst Beansexception {Super.ProcessProperties (beanfactorytoprocess, Requisiten) aus; PropertyMap = New HashMap <String, String> (); für (Objektschlüssel: props.keyset ()) {String keyStr = key.toString (); String value = props.getProperty (keystr); PropertyMap.put (KeYstr, Wert); }} // statische Methode zum Zugriff auf Kontexteigenschaften öffentliches statisches Objekt getProperty (String -Name) {return PropertyMap.get (Name); }}Verwenden Sie in der Konfigurationsdatei die oben genannte Klasse anstelle von PropertyPlacePlaPlyPonConfiger
<bean id = "PropertyConFigurer"> <Eigenschaft name = "location"> <wert> classPath: config.Properties </value> </property> </bean>
Auf diese Weise kann es direkt im Code durch Programmierung erhalten werden
PropertyPlaPleholder.getProperty ("SQL.Name");Wenn es sich um mehrere Konfigurationsdateien handelt, konfigurieren Sie das Attribut für Positionen
<bean id="propertyConfigurer" > <property name="ignoreResourceNotFound" value="true"/> <property name="locations"> <list> <value>file:./jdbc.properties</value> <value>file:./module.config.properties</value> <value>classpath:jdbc.properties</value> <wert> classPath*:*. config.Properties </value> </list> </property> </bean>
Zusammenfassen
Im obigen Abschluss dreht sich alles um den Frühlingscode, um die Analyse von Eigenschaftendateiinstanzen zu lesen. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf diese Seite verweisen:
Spring -Instanziierungs -Bean -Prozessanalyse und vollständige Codebeispiele
Erstellung der Spring Factory -Methode (Instanzinstanzcode für Ausbau)
Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!