Spring 中使用Properties文件

Spring提供了加载Properties文件的工具类:org.springframework.beans.factory.config.PropertyPlaceholderConfigurer。

在Spring容器启动时,使用内置bean对属性文件信息进行加载,在bean.xml中添加如下:

<!-- spring的属性加载器,加载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>

属性信息加载后其中一种使用方式是在其它bean定义中直接根据属性信息的key引用value,如邮件发送器bean的配置如下:

<!-- 邮件发送 -->
    <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>

另一种使用方式是在代码中获取配置的属性信息,可定义一个javabean:ConfigInfo.java,利用注解将代码中需要使用的属性信息注入;如属性文件中有如下信息需在代码中获取使用:

#生成文件的保存路径
file.savePath = D:/test/
#生成文件的备份路径,使用后将对应文件移到该目录
file.backupPath = D:/test bak/

ConfigInfo.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;
    }
}

业务类bo中使用注解注入ConfigInfo对象:
@Autowired
private ConfigInfo configInfo;
需在bean.xml中添加组件扫描器,用于注解方式的自动注入:
<context:component-scan base-package="com.my.model" />
(上述包model中包含了ConfigInfo类)。

通过get方法获取对应的属性信息,优点是代码中使用方便,缺点是如果代码中需用到新的属性信息,需对ConfigInfo.java做相应的添加修改。

时间: 2024-10-16 22:26:24

Spring 中使用Properties文件的相关文章

spring 中读取properties 文件

在src  目录下建立configs.properties backup.host = 192.168.1.6 backup.user = root backup.pwd =pwd 建立静态类: package com.ly.jxc.util; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Properties; import org.springframe

java spring中对properties属性文件加密及其解密

原创整理不易,转载请注明出处:java spring中对properties属性文件加密及其解密 代码下载地址:http://www.zuidaima.com/share/1781588957400064.htm 加密类: package com.zuidaima.commons.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import

五种方式让你在java中读取properties文件内容不再是难题

一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC+Mybatis整合开发的项目中通过java程序读取properties文件内容的方式进行了梳理和分析,先和大家共享. 二.项目环境介绍 Spring 4.2.6.RELEASE SpringMvc 4.2.6.RELEASE Mybatis 3.2.8 Maven 3.3.9 Jdk 1.7 Id

Spring 中注入 properties 中的值

1 <bean id="ckcPlaceholderProperties" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer"> 2 <property name="locations"> 3 <list> 4 <value>classpath:default.properties<

spring如何引用properties文件里的配置

1.PropertyPlaceholderConfigurer类它是把属性中的定义的变量(var)替代,spring的配置文件中使用${var}的占位符 <beans><bean id="configBean" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">           <property name="loc

在JSP页面中读取properties文件

在做web开发时,经常遇到要修改一下配置信息.如果把这些配置信息写在代码中,后期的维护便会比较麻烦.所以,一般都是把配置信息写在配置文件里面. 在JSP文件中,如果想要调用properties文件中的变量,则要在有文件中引入 java.util.ResourceBundle 类: <%@ page contentType="text/html; charset=UTF-8" import="java.util.ResourceBundle" %> 已知配

Spring中MultipartHttpServletRequest实现文件上传

Spring中MultipartHttpServletRequest实现文件上传 转贴自:http://my.oschina.net/nyniuch/blog/185266 实现图片上传  用户必须能够上传图片,因此需要文件上传的功能.比较常见的文件上传组件有Commons FileUpload(http://jakarta.apache.org/commons/fileupload/a>)和COS FileUpload(http://www.servlets.com/cos),spring已经

java读取package中的properties文件java.util.MissingResourceException

文件结构: /build/classes/d914/Hello.class /build/classes/d914/mess.properties /build/classes/d914/mess_zh_CN.properties /build/classes/d914/mess_en_US.properties 在eclipse中运行如下代码: package d914; import java.util.ResourceBundle; import java.util.Locale; pub

spring boot application.properties文件外部配置

spring boot application.properties文件外部配置 官方文档 原文地址:https://www.cnblogs.com/lwmp/p/9836791.html