文档章节

Spring中配置文件(properties)的读取与使用

小车车
 小车车
发布于 2016/10/10 17:24
字数 555
阅读 124
收藏 1

实际项目中,通常将一些可配置的定制信息放到属性文件中(如数据库连接信息,邮件发送配置信息等),便于统一配置管理。例中将需配置的属性信息放在属性文件/WEB-INF/configInfo.properties中。

其中部分配置信息(邮件发送相关):

#邮件发送的相关配置
email.host = smtp.163.com
email.port = xxx
email.username = xxx
email.password = xxx
email.sendFrom = xxx@163.com



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

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的配置如下:

Xml代码

 

<!-- 邮件发送 -->
	<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,利用注解将代码中需要使用的属性信息注入;如属性文件中有如下信息需在代码中获取使用:

Java代码

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



ConfigInfo.java 中对应代码:

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对象:

Java代码

 

@Autowired
private ConfigInfo configInfo;



需在bean.xml中添加组件扫描器,用于注解方式的自动注入:

Xml代码

 

<context:component-scan base-package="com.my.model" />


(上述包model中包含了ConfigInfo类)。

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

本文转载自:http://wuyaweiwude.iteye.com/blog/1616803

小车车
粉丝 5
博文 98
码字总数 115586
作品 0
深圳
程序员
私信 提问
spring boot配置文件相关

1.spring boot配置文件的格式 properties格式 yaml格式 yaml格式的配置文件在spring中会存在一个缺陷,@PropertySource注解不支持读取yaml配置文件,仅支持properties配置文件。不过这个问题...

lara_
07/03
22
0
如何在spring中读取properties配置文件里面的信息

如何在spring中读取properties配置文件里面的信息 <!-- 正文开始 --> 一般来说。我们会将一些配置的信息放在。properties文件中。 然后使用${}将配置文件中的信息读取至spring的配置文件。 ...

巴顿
2014/04/24
5.4K
0
spring boot框架学习之重要注解3注解方式读取外部资源配置文件

本节主要内容: 1:是用非注解方式怎么获取配置文件中的配置项 2:使用注解实战获取外部properties文件配置项 声明: 本文是《凯哥陪你学系列-框架学习之spring boot框架学习》中spring boot框...

中凯_凯哥java
2017/10/22
90
0
在spring配置文件取url地址,转码显示问题

场景是这样的,cas集成了shiro,在shiro中配置的回调地址我想把这个url转码显示在浏览器中,这样看着更专业点,我地址是在properties文件中的,在spring配置文件中获取地址。 问题: 1。直接在...

一个不正经的程序员
2014/03/28
911
1
redis扩展-自定义PropertyPlaceholderConfigurer,在spring属性注入之前,手动将properteis合并到spring容器中

背景:spring容器启动过程中,通过PropertyPlaceholderConfigurer读取properties配置文件,并将properties配置文件中的值注入spring bean的属性中, PropertyPlaceholderConfigurer使用方式多...

燃犀
2018/11/19
20
0

没有更多内容

加载失败,请刷新页面

加载更多

Qt程序打包发布方法(使用官方提供的windeployqt工具)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/toTheUnknown/article/details/81748179 如果使用到了Qt ...

shzwork
41分钟前
7
0
MainThreadSupport

MainThreadSupport EventBus 3.0 中的代码片段. org.greenrobot.eventbus.MainThreadSupport 定义一个接口,并给出默认实现类. 调用者可以在EventBus的构建者中替换该实现. public interface ...

马湖村第九后羿
今天
3
0
指定要使用的形状来代替文字的显示

控制手机键盘弹出的功能只能在ios上实现,安卓是实现不了的,所以安卓只能使用type类型来控制键盘类型,例如你要弹出数字键盘就使用type="number",如果要弹出电话键盘就使用type="tel",但这...

前端老手
今天
6
0
总结:Raft协议

一、Raft协议是什么? 分布式一致性算法。即解决分布式系统中各个副本数据一致性问题。 二、Raft的日志广播过程 发送日志到所有Followers(Raft中将非Leader节点称为Follower)。 Followers收...

浮躁的码农
今天
7
0
Flask-admin Model View字段介绍

Model View字段介绍 can_create = True 是否可以创建can_edit = True 是否可以编辑can_delete = True 是否可以删除list_template = 'admin/model/list.html' 修改显......

dillonxiao
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部