Parfois, nous devons lire directement le fichier de configuration des propriétés dans le code Spring, alors comment le faisons-nous? Jetons un coup d'œil au contenu spécifique ci-dessous.
Nous savons tous que Spring peut lire les valeurs des propriétés dans @Value, il suffit de les configurer dans le fichier de configuration
org.springframework.beans.factory.config.propertyPlaceHolderConfigurer
<bean id = "PropertyConfigurer"> <propriété name = "emplacement"> <value> CLASSPATH: config.properties </value> </prophed> </ank>
Ensuite, lorsque vous devez les utiliser pour obtenir les valeurs médianes des propriétés, vous pouvez l'utiliser comme ceci
@Value ("$ {sql.name}") String privé sqlName;Mais il y a un problème avec cela. Chaque fois que j'utilise la valeur dans le fichier de configuration, je dois déclarer une variable locale. Existe-t-il un moyen de lire directement les valeurs du fichier de configuration à l'aide du code?
La réponse est de réécrire PropertyPlaceHolderConfigurer
classe publique PropertyPlaceHolder étend PropertyPlaceHolderConfigurer {Private Static Map <String, String> PropertyMap; @Override Protected void processProperties (configurableListableBeanfactory beanfactoryToprocess, propriétés accessoires) lève BeanSexception {super.processProperties (beanfactoryToprocess, accessoires); PropertyMap = new HashMap <String, String> (); for (object key: props.KeySet ()) {String keyStr = key.toString (); String Value = props.getProperty (keySTR); PropertyMap.put (KeyStr, Value); }} // Méthode statique pour accéder aux propriétés de contexte Public Objet statique getProperty (nom de chaîne) {return propertyMap.get (name); }}Dans le fichier de configuration, utilisez la classe ci-dessus au lieu de PropertyPlaceHolderConfigurer
<bean id = "PropertyConfigurer"> <propriété name = "emplacement"> <value> CLASSPATH: config.properties </value> </prophed> </ank>
De cette façon, il peut être obtenu directement dans le code par programmation
PropertyPlaceHolder.getProperty ("sql.name");S'il s'agit de fichiers de configuration multiples, configurez l'attribut des emplacements
<bean id = "PropertyConfigurer"> <propriété name = "IgnoreResourCenotFound" value = "true" /> <propriété name = "Locations"> <sist> <value> fichier: ./ jdbc.properties </ value> <value> file: ./ module.config.properties </value> <value> classpath: jdbc.properties </ value> <value> classpath *: *. config.properties </value> </sist> </ propriété> </ban>
Résumer
Ce qui précède concerne le code de Spring pour lire les instances de fichier d'analyse des propriétés. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à ce site:
Analyse du processus de bean d'instanciation de printemps et exemples de code complet
Création de méthode de Spring Factory (instandardisation) Code d'instance de bean
S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!