English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Lecture et utilisation détaillée du fichier properties dans Spring
In actual projects, it is usually common to put some configurable custom information in property files (such as database connection information, email sending configuration information, etc.) for unified configuration management. In the example, the information that needs to be configured is placed in the property file/WEB-INF/in configInfo.properties.
Some configuration information (related to email sending):
# Configuration relative to email sending email.host = smtp.163.com email.port = xxx email.username = xxx email.password = xxx email.sendFrom = [email protected]
Lors du lancement du conteneur Spring, utilisez le bean intégré pour charger les informations des fichiers properties, ajoutez ce qui suit dans bean.xml :
Code XML
<!-- chargeur de propriétés de Spring, charge les propriétés des fichiers properties --> <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>
Après le chargement des informations d'attribut, l'une des méthodes d'utilisation consiste à utiliser directement les valeurs en fonction de la clé des informations d'attribut dans d'autres définitions de bean, par exemple, la configuration du bean de l'envoyeur de courrier électronique est la suivante :
Code XML
<!-- envoi de courrier électronique --> <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>
Une autre méthode consiste à obtenir des informations de configuration à partir du code, en définissant une javabean : ConfigInfo.java, et en injectant les informations d'attribut nécessaires dans le code à l'aide d'annotations ; si les informations suivantes sont nécessaires pour être utilisées dans le code :
Code Java
#Générer le chemin de sauvegarde des fichiers file.savePath = D:/test/ #Générer le chemin de sauvegarde des fichiers, déplacer le fichier correspondant dans ce répertoire après utilisation file.backupPath = D:/test bak/
Code correspondant dans ConfigInfo.java :
Code Java
@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; } }
L'utilisation de l'annotation pour injecter l'objet ConfigInfo dans la classe bo de service :
Code Java
@Autowired private ConfigInfo configInfo;
Il est nécessaire d'ajouter le scanner de composant dans bean.xml, utilisé pour l'injection automatique par annotation :
Code XML
<context:component-scan base-package="com.my.model" />
(Le paquet model mentionné ci-dessus contient la classe ConfigInfo).
Obtenir les informations de propriété correspondantes par la méthode get, l'avantage est que c'est pratique dans le code, mais le défaut est que si le code a besoin d'utiliser de nouvelles informations de propriété, il est nécessaire d'ajouter ou de modifier correspondamment ConfigInfo.java.
Merci de lire, j'espère que cela peut aider tout le monde, merci de votre soutien à ce site!