properties文件读取,使用spring内置方法

properties文件读取,使用spring内置方法

阅读引导

1、properties文件的读取,使用spring提供的内置方法。

2、对于基本功能的实现,一定要相信,业务早就有简单、美的实现!

3、为自己工作,为自己的系统工作,做自己的老板,形成正循环:打磨当前工作的核心关键能力——>高效能工作——>更多时间打磨自己的系统——>更高效能工作——>打磨下个层次工作的核心关键能力……

4、核心竞争力,是指你拥有的(独特的)知识经验组合,经过你思维逻辑的组织梳理,在实践中产生无可替代的价值。打造自己的TMS系统(T:专业技术;M:沟通管理、S:行业解决方案),利用复利效应,让系统为自己工作。

properties文件,在开发中经常用来存储一些key-value形式的配置参数。

经常看到开发人员自己去写了文件读取,然后解析到concurrenthashmap中去。

但是,这种造轮子的事情,有必要自己实现么?

Spring源码——PropertiesLoaderSupport

Spring本身提供了PropertiesLoaderSupport类,提供了properties文件的读取,有兴趣的读者可以去看一下源码。这里只探讨使用:

很简单的一个思路,我们去应用这个实现,可以看到需要指定properties文件所在的path,参数类型是Resources:this.setLocations(PropertyUtils.getResources(path));

public abstract class AbstractProperties extends PropertiesLoaderSupport implements InitializingBean{
	private String path = "classpath:**/*.properties";

	private static Properties mergedProps;

	/* (non-Javadoc)
	 * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
	 */
	@Override
	public void afterPropertiesSet() throws Exception {
		this.setLocations(PropertyUtils.getResources(path));
		mergedProps = mergeProperties();
	}

	public String getValue(String key) {
		return mergedProps.getProperty(key);
	}

	/**
	 * 子类需要实现的方法,指定properties配置文件路径
	 * @param path 例如:classpath:*.properties
	 */
	public abstract void setPath(String path);
}

将properties文件解析为Resource

Spring也提供了对于指定路径的properties文件解析为resource的内部处理方法PropertyUtils.java类中:

/**
	 * 获取path路径下的全部资源
	 * @param path
	 * @return
	 * @throws Exception
	 */
	public static Resource[] getResources(String path) throws Exception {
		ResourcePatternResolver loader=new PathMatchingResourcePatternResolver();
		Resource[] resources=loader.getResources(path);
		return resources;
	}

使用程序框架的优秀实践

如果使用spring的话,就直接使用其内部优秀的实践就好了,不要自己重复造轮子。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值