java读取excel并替换占位符_spring读取properties属性文件,并替换占位符中的值. | 学步园...

本文介绍了一种在Spring框架中自定义属性配置的方法,通过扩展`PropertyPlaceholderConfigurer`类实现属性文件的读取及占位符的填充。该方法允许开发者更加灵活地管理配置文件。
摘要由CSDN通过智能技术生成

package org.rps.util;

import java.util.HashMap;

import java.util.Map;

import java.util.Properties;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import org.springframework.beans.BeansException;

import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;

import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

/***

*

* 自定义属性文件读取

* @author YHC

*/

public class CustomizePropertyPlaceHolder extends PropertyPlaceholderConfigurer{

public CustomizePropertyPlaceHolder() {

}

/***

* 存储读取后的属性文件的引用

*/

private Properties properties=null;

//重写处理属性文件的方法

@Override

protected void processProperties(

ConfigurableListableBeanFactory beanFactoryToProcess,

Properties props) throws BeansException {

//执行父类处理读取文件

super.processProperties(beanFactoryToProcess, props);

//存储属性文件的引用

properties=props;

}

/***

* 根据属性文件中的键值获取对应属性文件中的值

* @param key 属性文件中的键值

* @return 对应属性文件中的属性值

*/

public String getProperty(String key){

return properties.getProperty(key);

}

/****

* 用值填充属性文件中的占位符{0},{1}...,值的顺序必须和参数的顺序是一致的

* @param key 属性文件中的键值

* @param values 对应属性文件中的占位符的信息

* @return 将占位符中的信息对应填充后的字符串

*/

public String getProperty(String key,String... values){

//对应占位符参数值

String[] vs=values;

//属性文件中的值

String v=getProperty(key);

//如果没有参数

if(vs==null||vs.length==0){

return getProperty(key);

}

//如果属性文件中没有值,则返回空字符串

if(v==null){

return "";

}

StringBuffer buffer=new StringBuffer();

//遍历参数数组

for (int i = 0; i < vs.length; i++) {

//替换前清空原有替换值

buffer.delete(0, buffer.length());

Pattern pattern=Pattern.compile("\\{"+i+"\\}");

Matcher matcher=pattern.matcher(v);

while(matcher.find()){

matcher.appendReplacement(buffer, vs[i]);

}

matcher.appendTail(buffer);

//进行下一次替换

v=buffer.toString();

}

//返回后替换的字符串

return buffer.toString();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值