Si certains paramètres du projet doivent être modifiés fréquemment ou peuvent être modifiés plus tard, il est préférable de mettre ces paramètres dans le fichier Propriétés et de lire la configuration dans les propriétés du code source. De cette façon, seul le fichier de propriétés doit être modifié plus tard, et il n'est pas nécessaire de modifier le code source, ce qui est plus pratique. Cela peut également être fait à Spring, et Spring a deux façons de charger des fichiers de propriétés: basé sur la méthode XML et basé sur la méthode d'annotation . Voici les deux méthodes.
1. Chargez le fichier de propriétés via XML
Prenons l'exemple de Spring Instanciated DataSource. Nous configurons généralement les éléments suivants dans le fichier bean.xml:
<! - com.mchange.v2.c3p0.combopooledDatasource est dans le package com.mchange.v2.c3p0 de C3P0-0.9.5.1.jar package -> <bean id = "dataSource"> <propriété name = "DriverClass" value = "com.mysql.jdbc.driver" /> <propriété = "jdbcurl" value = "jdbc: mysql: // localhost: 3306 / shop" /> <propriété name = "user" value = "root" /> <propriété name = "mot de passe" value = "root" /> </ bean>
Maintenant, si nous voulons modifier la source de données, nous devons modifier ces codes source, mais si nous utilisons des fichiers Properties, nous devons seulement modifier le code source et nous ne nous soucions pas du code source. Alors comment le faire?
Il y a une balise <context:property-placeholder location=""/> à Spring, qui peut être utilisée pour charger des fichiers de configuration des propriétés. L'emplacement est le chemin d'accès au fichier de configuration. Nous créons maintenant un nouveau fichier Conn.properties sous le SRC du répertoire du projet et écrivons la configuration de l'ourout de données ci-dessus:
dataSource = com.mchange.v2.c3p0.CombopooledDatasource DriverClass = com.mysql.jdbc.driver jdbcurl = jdbc /: mysql /: // localhost /: 3306 / shop user = root mot de passe = root =
Maintenant, il vous suffit d'apporter les modifications suivantes dans Bean.xml:
<Context: propriété-placeholder location = "classPath: conn.properties" /> <! - Fichier de configuration de chargement -> <! - com.mchange.v2.c3p0.CombopooledDatasource La classe est dans le package com.mchange.v2.c3p0 de C3P0-0.9.5.1.1. Conn.properties au démarrage -> <propriété name = "DriverClass" value = "$ {DriverClass}" /> <propriété name = "jdbcurl" value = "$ {jdbcurl}" /> <propriété name = "jdbcurl" value = "$ {jdbcurl}" /> <propriété = "user" value = "value =" $ {user} " Value = "$ {mot de passe}" /> </ank> <context: propriété-placeholder location = "" /> Les balises peuvent également être remplacées par les balises <an bean> suivantes. Nous connaissons davantage les balises <an bean> et sommes plus lisibles: <! - Équivalent à la configuration ci-dessus, ce qui suit est plus facile à comprendre -> <ean> <propriété name = "Locations"> <! </ propriété> </ban> Bien qu'il semble être aussi concis que le <context:property-placeholder location=""/> , il est plus clair. Il est recommandé d'utiliser le suivant. Cependant, cela est limité à XML, c'est-à-dire utiliser ${key} pour obtenir la valeur dans le fichier de configuration dans beans.xml.
2. Chargez le fichier de propriétés via l'annotation
Une autre façon consiste à utiliser @Value Annotation pour charger les valeurs dans le fichier de configuration via l'annotation.
Prenons un exemple: si nous voulons obtenir le chemin absolu vers un certain fichier du programme, nous penserons naturellement que nous ne pouvons pas l'écrire dans le programme, alors nous pouvons également désinstaller le fichier Propriétés. Ou créez un nouveau fichier public.properties dans le répertoire SRC, en supposant qu'un enregistrement y est écrit:
filepath = e /: //web//apache-tomcat-8.0.26//webapps//e_shop//image
Si vous souhaitez obtenir ce filepath via des annotations dans le code Java, vous devez d'abord configurer la méthode d'annotation dans le fichier bean.xml:
<! - La deuxième méthode consiste à utiliser l'injection d'annotation, qui est principalement utilisée dans le code Java pour injecter la valeur de valeur correspondante dans le fichier Propriétés en utilisant les annotations -> <bean id = "prop"> <propriété name = "Locations"> <! - Il s'agit de la classe PropertiesFactoryBean. Il dispose également d'une propriété d'emplacements et reçoit également un tableau, tout comme le <Array> <value> CLASSPATH: public.properties </value> </ray> </premothy
Maintenant, nous pouvons utiliser des annotations dans le code Java pour obtenir la valeur de FilePath:
@Component ("FileUpload") classe publique FileUploadUtil implémente FileUpload {private String filepath; @Value ("# {Prop.FilePath}") // @ valeur signifie trouver le bean avec id = "prop" dans le fichier bean.xml. Il lit le fichier de configuration des propriétés via l'annotation, puis lit la valeur de valeur correspondante de key = filepath dans le fichier de configuration correspondant public void setFilePath (string filepath) {System.out.println (filepath); this.filepath = filepath; }Notez qu'il doit y avoir une méthode définie à injecter et que l'annotation peut être écrite sur la méthode définie. Dans la méthode SetFilePath, le FilePath est imprimé via la console pour observer si la console a la sortie lors du démarrage de Tomcat. Si c'est le cas, cela signifie que Spring a chargé le Filepath lorsqu'il est démarré. Jetons un coup d'œil aux informations de démarrage de la console:
Ce qui précède est deux façons de charger les fichiers de configuration des propriétés. En fait, la classe PropertyPlaceHolderConfigurer ci-dessus en fonction de la méthode XML et de la classe PropertiesFactoryBean ici basée sur la méthode d'annotation hérite de la propriété de propriétés et sont tous deux utilisés pour charger le fichier de configuration des propriétés.
Résumer
Ce qui précède est une explication détaillée des deux exemples de fichiers de propriétés de chargement de ressort introduits par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!