A veces, necesitamos leer directamente el archivo de configuración de propiedades en el código de primavera, entonces, ¿cómo lo hacemos? Echemos un vistazo al contenido específico a continuación.
Todos sabemos que Spring puede leer los valores en Propiedades en @Value, simplemente configurarlos en el archivo de configuración
org.springframework.beans.factory.config.propertyplaceholderconfigurer
<bean id = "PropertyConfigurer"> <Property Name = "Ubicación"> <valor> classpath: config.properties </alue> </protion> </bean>
Luego, cuando necesite usarlos para obtener los valores medios de propiedades, puede usarlo así
@Value ("$ {sql.name}") privado cadena sqlname;Pero hay un problema con esto. Cada vez que uso el valor en el archivo de configuración, tengo que declarar una variable local. ¿Hay alguna forma de leer directamente los valores en el archivo de configuración utilizando el código?
La respuesta es reescribir PropertyPlaceHolderConfigurer
Public Class PropertyPlaceHolder extiende PropertyPlaceHolderConfigurer {MAP STÁTICO PRIVADO <String, String> PropertyMap; @Override Process ProcessProperties (configuableListableBeanFactory BeanFactoryToProcess, Propiedades) Lanza BeanSexception {super.processProperties (beanFactoryToprocess, Props); PropertyMap = new HashMap <String, String> (); for (clave de objeto: propsskeySet ()) {string keyStr = key.ToString (); Valor de cadena = props.getProperty (keyStr); PropertyMap.put (KeyStr, valor); }} // Método estático para acceder a las propiedades de contexto Objeto estático público }}En el archivo de configuración, use la clase anterior en lugar de PropertyPlaceHolderConfigurer
<bean id = "PropertyConfigurer"> <Property Name = "Ubicación"> <valor> classpath: config.properties </alue> </protion> </bean>
De esta manera, se puede obtener directamente en el código mediante programación
PropertyPlaceHolder.getProperty ("sql.name");Si se trata de múltiples archivos de configuración, configure el atributo de ubicaciones
<bean id = "PropertyConfigurer"> <Property name = "IgnorReSourCenotFound" value = "true"/> <Property name = "ubicaciones"> <list> <valor> archivo: ./ jdbc.properties </valor> <valor> file: ./ module.config.properties </value> <alon> classpath: jdbc.properties </value> <valor> classpath*:*. config.properties </alue> </list> </property> </bean>
Resumir
Lo anterior se trata del código de Spring para leer el análisis de las instancias del archivo de propiedades. Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a este sitio:
Análisis de procesos de frijol de instanciación de primavera y ejemplos completos de código
Spring Factory Method Creation (Instandardización) Código de instancia de Bean
Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!