English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Lesen und Verwenden von properties-Dateien in Spring

Lesen und Verwenden von properties-Dateien in Spring

In tatsächlichen Projekten werden in der Regel einige konfigurierbare Anpassungsinformationen in Eigenschaftsdateien (wie Datenbankverbindungsinformationen, E-Mail-Sendkonfigurationsinformationen usw.) platziert, um eine einheitliche Konfigurationsverwaltung zu erleichtern. Beispielweise werden die zu konfigurierenden Eigenschaftsinformationen in die Eigenschaftsdatei gestellt/WEB-INF/in der Datei configInfo.properties.

Einige der Konfigurationsinformationen (E-Mail-Sendkonfigurationen):

# E-Mail-Sendkonfigurationen
email.host = smtp.163.com
email.port = xxx
email.username = xxx
email.password = xxx
email.sendFrom = [email protected]

Beim Start des Spring-Containers wird die Information der Attributdatei durch einen internen Bean geladen, und wie folgt wird in der bean.xml hinzugefügt:

Xml-Code

<!-- Der Property-Loader von Spring, der die Attribute aus den properties-Dateien lädt -->
 <bean id="propertyConfigurer"
 class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
 <property name="location">
  <value>/WEB-INF/configInfo.properties</value>
 </property>
 <property name="fileEncoding" value="utf-8" />
 </bean>

Nachdem die Attributinformationen geladen wurden, kann eine der Verwendungsmethoden darin eine andere Bean-Definition direkt basierend auf dem Attributinformationen-Schlüssel referenzieren, wie z.B. die Konfiguration des E-Mail-Sender-Beans, die wie folgt ist:

Xml-Code

<!-- E-Mail-Sendung -->
 <bean id="mailSender"
 class="org.springframework.mail.javamail.JavaMailSenderImpl">
 <property name="host">
  <value>${email.host}</value>
 </property>
 <property name="port">
  <value>${email.port}</value>
 </property>
 <property name="username">
  <value>${email.username}</value>
 </property>
 <property name="password">
  <value>${email.password}</value>
 </property>
 <property name="javaMailProperties">
  <props>
  <prop key="mail.smtp.auth">true</prop>
  <prop key="sendFrom">${email.sendFrom}</prop>
  </props>
 </property>
 </bean>

Eine andere Verwendungsmethode besteht darin, die Konfigurationsattributinformationen im Code abzurufen, indem ein javabean: ConfigInfo.java definiert wird, um die erforderlichen Attributinformationen durch Annotationen in den Code einzufügen; wie z.B. bei den folgenden Informationen im Attributdatei, die im Code abgerufen und verwendet werden müssen:

Java-Code

#Erstellen Sie den Speicherpfad der Datei
file.savePath = D:/test/
#Erstellen Sie den Backup-Pfad der Datei, verschieben Sie die Datei in diesen Ordner nach Verwendung
file.backupPath = D:/test bak/

Corresponding Code in ConfigInfo.java:

Java-Code

@Component("configInfo")
public class ConfigInfo {
  @Value("${file.savePath}")
  private String fileSavePath;
  @Value("${file.backupPath}")
  private String fileBakPath;
  public String getFileSavePath() {
    return fileSavePath;
  }
  public String getFileBakPath() {
    return fileBakPath;
  }  
}

Verwenden Sie die Annotationen, um ConfigInfo-Objekte in der Geschäftslogikklasse bo zu injizieren:

Java-Code

@Autowired
private ConfigInfo configInfo;

Fügen Sie den Komponentenscanner im bean.xml hinzu, um die automatische Injektion durch Annotationen zu ermöglichen:

Xml-Code

<context:component-scan base-package="com.my.model" />

(Der obige Paketmodell enthält die ConfigInfo-Klasse).

Dateninformationen werden über das get-Verfahren abgerufen, der Vorteil ist, dass der Code verwendet wird, der bequem ist, der Nachteil ist, dass neue Attributinformationen im ConfigInfo.java hinzugefügt oder geändert werden müssen, wenn neue Attributinformationen im Code verwendet werden.

Vielen Dank für das Lesen, ich hoffe, es kann Ihnen helfen, vielen Dank für Ihre Unterstützung dieser Website!

Gefällt mir