文档章节

Java中如何获取spring中配置的properties属性文件内容

浮躁的码农
 浮躁的码农
发布于 2015/04/25 16:01
字数 248
阅读 45
收藏 0

1.通过spring 配置properties文件

?
1
2
3
4
5
6
7
8
9
<!-- 在XML配置文件中加入外部属性文件,当然也可以指定外部文件的编码 -->
<beanid="propertyConfigurer"class="PropertyUtils">
  <propertyname="locations">
    <list>
     <value>classpath:shishuocms.properties</value>
    <!-- 指定外部文件的编码 -->
    </list>
  </property>
</bean>



2.编写自定义的类PropertyUtils  继承PropertyPlaceholderConfigurer,重写processProperties 方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
importjava.util.Enumeration;
importjava.util.HashMap;
importjava.util.Map;
importjava.util.Properties;
importorg.apache.commons.lang3.StringUtils;
importorg.apache.log4j.Logger;
importorg.springframework.beans.BeansException;
importorg.springframework.beans.factory.config.ConfigurableListableBeanFactory;
importorg.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
 
importcom.shishuo.cms.exception.PropertyIsNullException;
 
/**
 * 属性工具类
 *
 * @author Herbert
 *
 */
publicclassPropertyUtilsextendsPropertyPlaceholderConfigurer {
 
    publicstaticfinalLogger logger = Logger.getLogger(PropertyUtils.class);
 
    privatestaticMap<String, String> propertyMap;
 
    @Override
    protectedvoidprocessProperties(
            ConfigurableListableBeanFactory beanFactoryToProcess,
            Properties props)throwsBeansException {
        super.processProperties(beanFactoryToProcess, props);
        propertyMap =newHashMap<String, String>();
        for(Object key : props.keySet()) {
            String keyStr = key.toString();
            String value = props.getProperty(keyStr);
            propertyMap.put(keyStr, value);
        }
    }
 
 
    publicstaticString getValue(String name)throwsPropertyIsNullException {
        String value = propertyMap.get(name);
        if(StringUtils.isBlank(value)) {
            String error ="属性["+ name +"]的值为空";
            logger.fatal(error);
            thrownewPropertyIsNullException(error);
        }else{
            returnvalue;
        }
    }
 
     
}



3.获取properties 参数值

String val = propertyConfigurer.getValue("oracle.url");

© 著作权归作者所有

共有 人打赏支持
浮躁的码农

浮躁的码农

粉丝 65
博文 754
码字总数 146196
作品 0
松江
程序员
私信 提问
Spring Boot 配置加载顺序详解

使用 Spring Boot 会涉及到各种各样的配置,如开发、测试、线上就至少 3 套配置信息了。Spring Boot 可以轻松的帮助我们使用相同的代码就能使开发、测试、线上环境使用不同的配置。 在 Spri...

Java技术栈
08/27
0
0
微服务 SpringBoot 2.0(二):配置文件解析

properties我用了好多年,你却让我用yml,这是什么鬼 —— Java面试必修 引言 上一篇介绍了Spring Boot的轻松入门项目构建,对Spring Boot的特性有了初步了解。但如果要想玩得很熟练的话就请...

阿郎_
09/23
0
0
【死磕Sharding-jdbc】—–基于ssm

原文作者:阿飞Javaer 原文链接:https://www.jianshu.com/p/602e24845ed3 本篇文章讲解如何在ssm(spring、springmvc、mybatis)结构的程序上集成sharding-jdbc(版本为1.5.4.1)进行分库分...

飞哥-Javaer
05/05
0
0
Spring的PropertyPlaceholderConfigurer应用

Spring 利用PropertyPlaceholderConfigurer占位符 1. PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是BeanFactoryPostProcessor接口的一个实现。PropertyPlaceholderCo...

java远
2013/11/28
0
0
Spring核心——资源数据管理

在Profile管理环境一文中介绍了环境的概念以及Spring Profile特性控制Bean的添加。本文将进一步介绍Spring管理和控制操作系统变量、JVM变量和Java标准资源(properties文件)的相关功能。 文...

随风溜达的向日葵
08/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据学习有哪几个步骤

目前大数据行业异常火爆,不少人都对大数据充满了兴趣,其中有大部分人都从没接触过大数据,对于应该如何学习大数据一头雾水。大数据学习并不是高深莫测的,虽然它并没有多简单,但是通过努力...

董黎明
16分钟前
4
0
shell习题_3

1:监控httpd的进程;每隔10s检测一次服务器的httpd的进程数,如果大于500则自动重启httpd服务;并检测是否启动成功; 如果没有正常启动还需要再启动一次,最大不成功数超过五次立即发邮件给管理...

芬野de博客
16分钟前
1
0
Android 9.0 优势探讨

我们来谈论一下 Android。尽管 Android 只是一款内核经过修改的 Linux,但经过多年的发展,Android 开发者们(或许包括正在阅读这篇文章的你)已经为这个平台的演变做出了很多值得称道的贡献...

问题终结者
33分钟前
4
0
vue 组件使用中的一些细节点

细节一 基础例子 运行结果: 以上大家都懂,这边就不多说,回到代码里,有时候我们需要 tbody 里面每一行是一个子组件,那我们代码可以怎么写呢?我们可以这样写,定义一个全局组件,如下: ...

peakedness丶
40分钟前
2
0
vue 之 css module的使用方法

动手之前先配置项目,网上很多文章说需要下载css-loader插件,Vue中的vue-loader已经集成了 CSS Modules,因此删掉也能正常运行 在vue.config.js中添加如下配置 `css: {``loaderOptions: ...

前端小攻略
44分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部