Wenn einige Parameter im Projekt häufig geändert werden müssen oder möglicherweise später geändert werden müssen, ist es am besten, diese Parameter in die Eigenschaftendatei einzulegen und die Konfiguration in den Eigenschaften im Quellcode zu lesen. Auf diese Weise muss nur die Eigenschaftendatei später geändert werden, und es müssen nicht den Quellcode geändert werden, der bequemer ist. Dies kann auch im Frühjahr erfolgen, und Spring bietet zwei Möglichkeiten, Eigenschaftendateien zu laden: basierend auf der XML -Methode und basierend auf der Annotationsmethode . Das Folgende sind die beiden Methoden.
1. Laden Sie die Eigenschaftendatei über XML
Nehmen wir als Beispiel für den Spring -sofortige Datenquerzen. Wir konfigurieren im Allgemeinen Folgendes in der Bean.xml -Datei:
<!-com.mchange.v2.c3p0.combopooledDataSource-Klasse befindet sich im Paket com.mchange.v2.c3p0 von C3P0-0.9.1.jar Paket-> <bean id = "DataSource"> <Property name = "Driverclass" value = "com.mysql.jdbc.ddbc.driver" /< value = "jdbc: mysql: // localhost: 3306/shode"/> <Eigenschaft name = "Benutzer" value = "root"/> <Eigenschaft name = "Passwort" value = "root"/> </bean>
Wenn wir nun die DataSource ändern möchten, müssen wir diese Quellcodes ändern. Wenn wir jedoch Eigenschaftendateien verwenden, müssen wir den Quellcode nur ändern, und wir kümmern uns nicht um den Quellcode. Wie mache ich das?
Es gibt einen <context:property-placeholder location=""/> Tag in Spring, mit dem Konfigurationsdateien von Eigenschaften geladen werden können. Der Ort ist der Pfad zur Konfigurationsdatei. Wir erstellen nun eine neue Conn.Properties -Datei unter der SRC des Projektverzeichnisses und schreiben die oben genannte DataSource -Konfiguration:
dataSource = com.mchange.v2.c3p0.combopooledDataSource driverClass = com.mysql.jdbc.driver
Jetzt müssen Sie nur noch die folgenden Änderungen in Beans.xml vornehmen:
<Kontext: Property-Placeholder-Standort = "ClassPath: Conn.Properties"/> <!-Ladekonfigurationsdatei-> <!-com.mchange.v2.c3p0.combopooledDataSource-Klasse ist im com.mchange.v2.c3p0-Paket von C3P0-0.9.5.1.jar Paket in der Foota-Paket. conn.properties at startup --> <property name="driverClass" value="${driverClass}" /> <property name="jdbcUrl" value="${jdbcUrl}" /> <property name="jdbcUrl" value="${jdbcUrl}" /> <property name="user" value="${user}" /> <property name="password" value = "$ {password}"/> </bean> <context: Immobilien-Placeholder location = ""/> Tags können auch durch die folgenden <Bean> -Tags ersetzt werden. Wir sind mit den <Bohnen-Tags besser vertraut und lesbarer: <!-Äquivalent zur oben genannten Konfiguration ist das Folgende leichter zu verstehen-> <bean> <Eigenschaft name = "Standorte"> <!-Es gibt eine Eigenschaft von Standorten in der PropertyPlaPleholderConfigurer-Klasse. </Property> </bean> Obwohl es so präzise zu sein scheint wie der oben genannte <context:property-placeholder location=""/> ist es klarer. Es wird empfohlen, die folgenden zu verwenden. Dies ist jedoch auf XML beschränkt, dh ${key} um den Wert in der Konfigurationsdatei in beans.xml zu erhalten.
2. Laden Sie die Eigenschaftendatei durch Annotation laden
Eine andere Möglichkeit besteht darin, @Value -Annotation zu verwenden, um die Werte in der Konfigurationsdatei durch Annotation zu laden.
Nehmen wir ein Beispiel: Wenn wir den absoluten Pfad zu einer bestimmten Datei im Programm erreichen möchten, werden wir natürlich denken, dass wir sie nicht tot im Programm schreiben können, dann können wir auch die Eigenschaftendatei deinstallieren. Oder erstellen Sie eine neue öffentliche. Properties -Datei im SRC -Verzeichnis, vorausgesetzt, ein Datensatz ist darin geschrieben:
filepath = e/: //web//apache-tomcat-8.0.26//webapps//e_shop//image
Wenn Sie diesen Filepath durch Anmerkungen im Java -Code erhalten möchten, müssen Sie zunächst die Annotationsmethode in der Bean.xml -Datei konfigurieren:
<!-Die zweite Methode besteht darin, eine Annotationsinjektion zu verwenden, die hauptsächlich im Java-Code verwendet wird, um den entsprechenden Wertwert in der Eigenschaftendatei mit Annotationen zu injizieren-> <bean id = "prop"> <Eigenschaft name = "Positionen"> <! Es verfügt auch über eine Standorteigenschaft und empfängt auch ein Array, genau wie das obige <Array> <Wert> classPath: public.Properties </value> </array> </property> </bean>
Jetzt können wir Anmerkungen im Java -Code verwenden, um den Wert von Filepath zu erhalten:
@Component ("FileUpload") public class FileUploadUtil implementiert FileUpload {private String filepath; @Value ("#{prop.filepath}") //@Wert bedeutet, die Bean mit id = "prop" in der bean.xml -Datei zu finden. Es liest die Eigenschaftenkonfigurationsdatei durch Annotation und liest dann den entsprechenden Wert von Key = FilePath in der entsprechenden Konfigurationsdatei Public void setfilepath (String filepath) {System.out.println (Filepath); this.filepath = filepath; }Beachten Sie, dass eine festgelegte Methode injiziert werden muss, und die Anmerkung kann auf die festgelegte Methode geschrieben werden. In der SetFilePath -Methode wird der Filepath über die Konsole gedruckt, um zu beobachten, ob die Konsole beim Starten von Tomcat ausgegeben hat. Wenn ja, bedeutet dies, dass die Feder den Filepath beim Beginn des Starts geladen hat. Schauen wir uns die Startinformationen der Konsole an:
Die oben genannten Möglichkeiten sind Konfigurationsdateien der Spring -Eigenschaften. Tatsächlich basiert die oben auf der XML -Methode und der PropertiesFactororyBean -Klasse hier oben auf der Annotationsmethode ererbte Grundlage für PropertiesLoadersupport und werden beide zum Laden der Eigenschaftenkonfigurationsdatei erben.
Zusammenfassen
Das obige ist eine detaillierte Erläuterung der beiden Beispiele für Federladungseigenschaften -Dateien, die vom Editor vorgestellt wurden. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!