博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring 的 PropertyPlaceholderConfigurer读取的属性怎么访问 (java访问方式,不是xml中的占位符哦)及此类的应用...
阅读量:5795 次
发布时间:2019-06-18

本文共 2425 字,大约阅读时间需要 8 分钟。

一、1.占位符的应用:(@Autowired注解方式,不需要建立set与get方法了,xml注入也不需要写了)

http://www.cnblogs.com/susuyu/archive/2012/09/10/2678458.html

 

二、

2、java方式访问(已经验证过好用)

1、通过spring配置properties文件

 

[java]  <bean id="propertyConfigurer"      class="com.tjsoft.base.util.CustomizedPropertyPlaceholderConfigurer">      <property name="ignoreResourceNotFound" value="true" />      <property name="locations">          <list>              <value>/WEB-INF/config/jdbc.properties</value>              <value>/WEB-INF/config/mail.properties</value>              <value>/WEB-INF/config/system.properties</value>          </list>      </property>  </bean> 

其中class为自己定义的类

2、自定义类CustomizedPropertyPlaceholderConfigurer

[java]  import java.util.HashMap;  import java.util.Map;  import java.util.Properties;    import org.springframework.beans.BeansException;  import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;  import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;    /**  * 自定义PropertyPlaceholderConfigurer返回properties内容  *   * @author LHY 2012-02-24  *   */  public class CustomizedPropertyPlaceholderConfigurer extends          PropertyPlaceholderConfigurer {        private static Map<String, Object> ctxPropertiesMap;        @Override      protected void processProperties(              ConfigurableListableBeanFactory beanFactoryToProcess,              Properties props) throws BeansException {          super.processProperties(beanFactoryToProcess, props);          ctxPropertiesMap = new HashMap<String, Object>();          for (Object key : props.keySet()) {              String keyStr = key.toString();              String value = props.getProperty(keyStr);              ctxPropertiesMap.put(keyStr, value);          }        }        public static Object getContextProperty(String name) {          return ctxPropertiesMap.get(name);      }    }   

 

这样就可以通过CustomizedPropertyPlaceholderConfigurer类来获取properties属性文件中的内容了

3、如何获取属性文件的内容

String host =  (String) CustomizedPropertyPlaceholderConfigurer.getContextProperty("mail.smtp.host");

 

三、未验证,不知道好用不

action也是spring配置的bean吗?

是的话,直接注入就行了。
<bean id="actionname" class="com.MyAction">
   <property name="property1" value="${configed.property1}"/>
</bean>
如果不是,可以将这个property注入到System.properties中去
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
    depends-on="PlaceholderConfigurer">
<property name="targetClass">
<value>java.lang.System</value>
</property>
<property name="targetMethod">
<value>setProperty</value>
</property>
<property name="arguments">
<list>
<value>property1</value>
<value>${configed.property1}"</value>
</list>
</property>
</bean
然后在action中使用System.getProperty("property1")

你可能感兴趣的文章
修改db_writer_processes参数
查看>>
MySQL安装(yum安装)
查看>>
linux 完整学习资料:第十一章Samba服务
查看>>
详解MySQL中EXPLAIN解释命令
查看>>
安装archlinux 以后没有 ifconfig,route ,nslookup 等命令
查看>>
安徽省2012年度会计从业资格无纸化考试合格分数线通知
查看>>
前端基础面试回顾--HTML+CSS
查看>>
【QQ音乐Api】移花接木 打造自己的音乐电台
查看>>
我的友情链接
查看>>
HTML5游戏开发实践指南
查看>>
20161220L05-02和L05-04老男孩Linux运维实战培训-硬盘的基础知识介绍01和02
查看>>
100baseT,1000baseX,1000baseTX,1000baseFX分别表示的意思
查看>>
25 个免费和收费的 WordPress 电商网店的模板
查看>>
SSH-KeyGen 实现linux服务器之间免密码登录
查看>>
dajngo 常用特殊查询
查看>>
maven编译的时候排除junit测试类
查看>>
dnyArray分析,动态数组分析
查看>>
CentOS分区cfdisk
查看>>
Hive安装配置
查看>>
SEO组月测试-SEO基础问题,不看答案你能答多少
查看>>