English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Detalles de lectura y uso de archivos de propiedades properties en Spring
En proyectos reales, generalmente se colocan algunas informaciónes personalizables configurables en archivos de propiedades (como información de conexión de base de datos, configuración de envío de correo, etc.), lo que facilita la gestión de configuración unificada. En el ejemplo, la información de atributos que se deben configurar se coloca en el archivo de propiedades/WEB-INF/en configInfo.properties.
Dentro de algunas configuraciones de información (información de envío de correo):
# Configuración de envío de correo email.host = smtp.163.com email.port = xxx email.username = xxx email.password = xxx email.sendFrom = [email protected]
Al iniciar el contenedor de Spring, utiliza el bean integrado para cargar la información de los archivos de propiedades, y agrega lo siguiente en el archivo bean.xml:
Código XML
<!-- cargador de propiedades de spring, carga las propiedades de los archivos 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>
Después de cargar la información de las propiedades, una de las formas de usarlas es referenciar directamente el valor de la información de las propiedades en la definición de otros beans, como la configuración del bean del envío de correo:
Código XML
<!-- envío de correo --> <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>
Otra forma de usarlo es obtener la información de las propiedades de configuración en el código, puede definir un javabean: ConfigInfo.java, inyectar la información de las propiedades necesarias en el código mediante anotaciones; si en el archivo de propiedades hay información como la siguiente, debe obtenerla y usarla en el código:
Código Java
#Generar la ruta de almacenamiento del archivo file.savePath = D:/test/ #Generar la ruta de respaldo del archivo, después de usar, el archivo correspondiente se moverá a este directorio file.backupPath = D:/test bak/
Código correspondiente en ConfigInfo.java:
Código 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; } }
La clase bo de negocios utiliza la anotación para inyectar el objeto ConfigInfo:
Código Java
@Autowired private ConfigInfo configInfo;
Se debe agregar el escaneo de componentes en bean.xml, utilizado para la inyección automática de anotaciones:
Código XML
<context:component-scan base-package="com.my.model" />
(El paquete model mencionado anteriormente contiene la clase ConfigInfo).
Se obtiene la información de las propiedades correspondientes mediante el método get, la ventaja es que es conveniente usar el código, la desventaja es que si se necesita usar nuevas información de propiedades en el código, se debe agregar y modificar el ConfigInfo.java correspondiente.
Gracias por leer, espero que pueda ayudar a todos, gracias por el apoyo a este sitio!