在spring中提供了一个专门加载文件的类PropertyPlaceholderConfigurer,通过这个类我们只需要给定需要加载文件的路径就可以

通过该类加载到项目,但是为了后面在程序中需要使用到属性文件内容,在这里将加载到的配置文件全部保存进一个map对象中,后面可以直接

键值对去用:

首先创建一个继承PropertyPlaceholderConfigurer的类PropertyConfigurer,加载文件,并保存进对象:

  1. public class PropertyConfigurer extends PropertyPlaceholderConfigurer{
  2.  
  3. private static Map<String, Object> ctxPropertiesMap;
  4.  
  5. @Override
  6. protected void processProperties( ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException {
  7. //spring载入配置文件(具体原理还在研究中)
  8. super.processProperties(beanFactoryToProcess, props);
  9. ctxPropertiesMap = new HashMap<String, Object>();
  10. //便利加载的配置文件的键值,并根据键值获取到value值,然后一同保存进map对象
  11. for (Object key : props.keySet()){
  12. String keyStr = key.toString();
  13. String value = props.getProperty(keyStr);
  14. ctxPropertiesMap.put(keyStr, value);
  15. }
  16. }
  17.  
  18. //此方法根据map对象的键获取其value的值
  19. public static Object getContextProperty(String name) {
  20. return ctxPropertiesMap.get(name);
  21. }
  22. }

  然后在spring的配置文件中配置需要载入的属性文件

  1. <!--读入配置文件,在后面的代码中需要用到属性文件的内容时 -->
  2. <bean id="propertyConfigurer" class="cn.com.owg.util.PropertyConfigurer">
  3. <property name="locations">
  4. <value>classpath*:jdbc.properties</value>
  5. </property>
  6. </bean>

<!--读入配置文件,后面的代码不需要用到属性文件的内容时,直接通过PropertyPlaceholderConfigurer来载入属性文件 -->
        <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
             <property name="locations">
                     <value>classpath*:jdbc.properties</value>
             </property>
        </bean>

  1. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  2. <property name="driverClassName" value="${jdbc.driverClassName}" />
  3. <property name="url" value="${jdbc.url}" />
  4. <property name="username" value="${jdbc.username}" />
  5. <property name="password" value="${jdbc.password}" />
  6. </bean>

  后面的代码中需要使用属性配置文件时:

  1. String driverManager=PropertyConfigurer.getContextProperty("jdbc:driverClassManager")).trim();//获取属性文件的某一个内容

  

spring加载属性配置文件内容的更多相关文章

  1. 使用Spring加载properties配置文件.md

    背景 类似于datasource.properties之类的配置文件,最初通过Java的Properties类进行处理.这种方式有许多弊端,如每次都需要读取配置文件:若将Properties作为成员变 ...

  2. spring 加载属性(properties)文件

    在开发的过程中,配置文件往往就是那些属性(properties)文件,比如使用properties文件配置数据库文件,又如database-config.properties 代码清单:databas ...

  3. spring学习 十六 spring加载属性文件

    第一步:创建一个properties文件,以数据库链接作为实例db.properties jdbc.url=jdbc:mysql://192.168.153.128:3306/mybaties?cha ...

  4. Spring加载Properties配置文件的三种方式

    一.通过 context:property-placeholder 标签实现配置文件加载 1) 用法: 1.在spring.xml配置文件中添加标签 <context:property-plac ...

  5. Spring加载xml配置文件的方式 ApplicationContext

    大家都知道Java读普通文件是通过Basic I/O 中的InputStream.OutStream.Reader.Writer 等实现的.在spring 框架中,它是怎样识别xml这个配置文件的呢? ...

  6. Spring加载XML配置文件

    原创链接:http://www.cnblogs.com/yanqin/p/5282929.html(允许转载,但请注明原创链接) BeanFactory加载单个文件 当使用beanfactory去获取 ...

  7. Spring加载xml配置文件的方式(BeanFactory和ApplicationContext区别)

    描述 大家都知道Java读普通文件是通过Basic I/O 中的InputStream.OutStream.Reader.Writer 等实现的.在spring 框架中,它是怎样识别xml这个配置文件 ...

  8. Spring加载xml配置文件的方式

    梳理Spring的流程 xml是最常见的spring 应用系统配置源.Spring中的几种容器都支持使用xml装配bean,包括: XmlBeanFactory,ClassPathXmlApplica ...

  9. spring加载属性(properties)文件

    一.注解方式加载 jdbc.driver=org.mariadb.jdbc.Driver jdbc.url=jdbc:mariadb://localhost:3306/kt jdbc.user=roo ...

随机推荐

  1. Burnside引理&Pólya定理

    Burnside's lemma 引例 题目描述 一个由2*2方格组成的正方形,每个格子上可以涂色或不涂色, 问共有多少种本质不同的涂色方案. (若两种方案可通过旋转互相得到,称作本质相同的方案) 解 ...

  2. mysql 的linux 忘记了密码

    1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录 ...

  3. shell脚本中:单引号和双引号的区别

    单引号和双引号的区别 前面我们还留下一个疑问,定义变量时,变量的值可以由单引号' '包围,也可以由双引号" "包围,它们到底有什么区别呢?不妨以下面的代码为例来说明: #!/bin ...

  4. Zabbix-server及zabbix-web安装手册(centos7)

    注:本实验环境在centos7mini下实验,具体相关软件版本最好一致,避免依赖关系缺失. 当然也可以新建用户zabbix(不使用root,避免安全隐患),在zabbix下执行操作,加sudo提升权限 ...

  5. .net API跨域

    在webconfig中的节点 <system.webServer> </system.webServer> 下添加 <httpProtocol><custom ...

  6. NX二次开发-NXOpen::WCS Class Reference

    NX11+VS2013 #include <NXOpen/Part.hxx> #include <NXOpen/PartCollection.hxx> #include < ...

  7. [JZOJ 5819] 大逃杀

    题意:求一个树上背包~~ 先贴代码存一下,好像打挂了. #include <bits/stdc++.h> using namespace std; const int maxn = 400 ...

  8. 剑指offer——37复杂链表的复制

    题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head.(注意,输出结果中请不要返回参数中的节点引用,否 ...

  9. jquery操作html元素之(删除元素)

    删除元素/内容 如需删除元素和内容,一般可使用以下两个 jQuery 方法: remove() - 删除被选元素(及其子元素) empty() - 从被选元素中删除子元素 jQuery remove( ...

  10. java 3des加密问题记录

    3des加密有不同的加密模式和填充模式,这个网上很多不多说了,只要保证加解密的时候加密模式和填充模式保持一致就可以了 首先对于密钥的生成,java中有2种方式: 1.第一种,采用ECB模式和不填充模式 ...