您当前的位置: 首页 > 

wespten

暂无认证

  • 1浏览

    0关注

    899博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

propertyPlaceholderConfigurer读取配置文件

wespten 发布时间:2018-10-05 14:24:56 ,浏览量:1

一、propertyPlaceholderConfigurer读取配置文件

1. PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是 BeanFactoryPostProcessor接口的一个实现。PropertyPlaceholderConfigurer可以将上下文(配置文 件)中的属性值放在另一个单独的标准java Properties文件中去。在XML文件中用${key}替换指定的properties文件中的值。这样的话,只需要对properties文件进 行修改,而不用对xml配置文件进行修改。

2.在Spring中,使用PropertyPlaceholderConfigurer可以在XML配置文件中加入外部属性文件,当然也可以指定外部文件的编码,如:


   
   conf/jdbc.properties
   
   
      UTF-8
   

3.PropertyPlaceholderConfigurer起的作用就是将占位符指向的数据库配置信息放在bean中定义的工具。

4.查看源代码,可以发现,locations属性定义在PropertyPlaceholderConfigurer的祖父类 PropertiesLoaderSupport中,而location只有 setter方法。类似于这样的配置,在spring的源程序中很常见的。

PropertyPlaceholderConfigurer如果在指定的Properties文件中找不到你想使用的属性,它还会在Java的System类属性中查找。

我们可以通过System.setProperty(key, value)或者java中通过-Dnamevalue来给Spring配置文件传递参数。


        
        
            
                classpath:conf/jdbc.properties                classpath:conf/config.properties                classpath:conf/server.properties
            
        
        
    
package com.slp.util;

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

import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

public class CustomizedPropertyConfigurer extends PropertyPlaceholderConfigurer {

    private static Map ctxPropMap;

    @Override
    protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException {
        super.processProperties(beanFactoryToProcess, props);
        ctxPropMap = new HashMap();
        for (Object key : props.keySet()){
            String keyStr = key.toString();
            String value = String.valueOf(props.get(keyStr));
            ctxPropMap.put(keyStr,value);
        }
    }

    public static String getCtxProp(String name) {
        return ctxPropMap.get(name);
    }

    public static Map getCtxPropMap() {
        return ctxPropMap;
    }
}

//使用的时候如下即可
CustomizedPropertyConfigurer.getCtxProp("xxx")

二、配置数据库资源




	
	
	  
	
		
			
				/WEB-INF/hibernate.properties
				/WEB-INF/uploadDir.properties
			
		
	
	
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
	
	
	
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
	


hibernate.properties

hibernate.beanid=hibernate
hibernate.name=\u7CFB\u7EDF\u9ED8\u8BA4\u6570\u636E\u6E90
hibernate.driverClass=oracle.jdbc.driver.OracleDriver
hibernate.default_schema=MONITMEAS
hibernate.username=MONITMEAS
hibernate.password=MONITMEAS
hibernate.jdbcUrl=jdbc:oracle:thin:@192.168.1.100:1521:orcl
hibernate.dialect=org.hibernate.dialect.OracleDialect
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.hbm2ddl.auto=update
hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider
hibernate.cache.use_query_cache=true
hibernate.packages.to.scan.one=com.base.po
hibernate.packages.to.scan.two=com.base.po.*

mysql.driverClass=com.mysql.jdbc.Driver
mysql.jdbcUrl=jdbc:mysql://192.168.1.161:3306/platform?useUnicode=true&characterEncoding=utf-8&useOldAliasMetadataBehavior=true
mysql.userName=PLATFORM
mysql.password=PLATFORM

uploadDir.properties

upload.base_dir=F\:\\BDCUpload

 

 

 

关注
打赏
1665965058
查看更多评论
立即登录/注册

微信扫码登录

0.0388s