精华帖 (0) :: 良好帖 (1) :: 新手帖 (12) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-12-27
!-- <context:property-placeholder --> <!-- location="/WEB-INF/jdbc-config/jdbc.properties" /> --> <bean id="propertyConfigurer" class="com.chinaGPS.nss.util.MyPropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>/WEB-INF/jdbc-config/httpRemote.properties</value> </list> </property> </bean>
package com.chinaGPS.nss.util; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Properties; import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; import com.chinaGPS.nss.constant.SystemConst; /**加载属性类 * @author zhz * */ public class MyPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer { private Map<String, String> resolvedProps;//将属性保存起来 @Override protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException { super.processProperties(beanFactoryToProcess, props); resolvedProps = new HashMap<String, String>(); for (Object key : props.keySet()) { String keyStr = key.toString(); if(StringUtils.equals(keyStr, "auto_craw")) { String tmp = parseStringValue(props.getProperty(keyStr), props,new HashSet()); if(StringUtils.equalsIgnoreCase(tmp, "on")) SystemConst.AUTOCRAW = "on"; if(StringUtils.equalsIgnoreCase(tmp, "off")) SystemConst.AUTOCRAW="off"; else continue; } // resolvedProps.put(keyStr, parseStringValue(props.getProperty(keyStr), props, // new HashSet())); } } }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-12-29
这正是我最近想要的
不过 我想问一下 如果 这个类 已经是 spring bean了 如何不用extends PropertyPlaceholderConfigurer 就可以使用参数? |
|
返回顶楼 | |
发表时间:2011-12-30
飞天奔月 写道 这正是我最近想要的
不过 我想问一下 如果 这个类 已经是 spring bean了 如何不用extends PropertyPlaceholderConfigurer 就可以使用参数? 这个可能要依赖spring中的相关类获取键值对,目前我没有解决,而且PropertyPlaceholderConfigurer 是spring2.x的类,在spring3.x 中是已过时的。。。 |
|
返回顶楼 | |
发表时间:2011-12-30
不需要酱紫用。分明用${value}就可以直接注入进去。
我记得在官方文档上就有。浅尝辄止的人太多了。 |
|
返回顶楼 | |
发表时间:2011-12-30
依赖注入呀
给这个类MyPropertyPlaceholderConfigurer 定义几个属性,一注入就进去了,何毕这么麻烦。。 |
|
返回顶楼 | |
发表时间:2011-12-31
aiyust070 写道 依赖注入呀
给这个类MyPropertyPlaceholderConfigurer 定义几个属性,一注入就进去了,何毕这么麻烦。。 你说的对,但是你如何在代码中获取键值对呢?我目前只知道可以在配置文件中用${value}获得。 |
|
返回顶楼 | |
发表时间:2011-12-31
EXvision 写道 不需要酱紫用。分明用${value}就可以直接注入进去。
我记得在官方文档上就有。浅尝辄止的人太多了。 ${value} 这种方式,我用的想吐了。。。。而且只能在xml配置文件中生效吧。。。。,可以在java代码中使用,那就是牛了。。。 |
|
返回顶楼 | |
发表时间:2011-12-31
qq123zhz 写道 aiyust070 写道 依赖注入呀
给这个类MyPropertyPlaceholderConfigurer 定义几个属性,一注入就进去了,何毕这么麻烦。。 你说的对,但是你如何在代码中获取键值对呢?我目前只知道可以在配置文件中用${value}获得。 你想说的是这篇文章的内容吧。http://jackyrong.iteye.com/blog/1330946 |
|
返回顶楼 | |
发表时间:2011-12-31
config.properties:
archive.workdir=D:/tmp xml: <util:properties id="config" location="classpath:/config.properties"/> java: @Value("#{config['archive.workdir']}") private String workdir |
|
返回顶楼 | |
发表时间:2011-12-31
最后修改:2011-12-31
qq123zhz 写道 EXvision 写道 不需要酱紫用。分明用${value}就可以直接注入进去。
我记得在官方文档上就有。浅尝辄止的人太多了。 ${value} 这种方式,我用的想吐了。。。。而且只能在xml配置文件中生效吧。。。。,可以在java代码中使用,那就是牛了。。。 这句话有语病!前面是肯定语句,后面怎么又变成疑问句呢? |
|
返回顶楼 | |