JFinal如何支持多个Properties文件?

小强哥unas 发布于 2014/07/09 15:35
阅读 2K+
收藏 0
看了源码JFinal现在是在JFinalConfig中加载单一的Properties文件,那么如何支持多个Properties文件呢?并且配置需要在Controller中调用?
加载中
0
子木007
子木007
不就是个配置文件么,为什么要限制在 JFinal 的框框里呢?  自己写一个随意加载就是了。
子木007
子木007
回复 @小强哥unas : 的确 jfinal 这个地方欠缺。而且 loadProperty 的位置都写死的
小强哥unas
小强哥unas
spring在配置文件的加载方面管理得非常好,故期望了解JFinal是否有类似的考虑
1
JFinal
JFinal
可以加载多个。可以多次调用 loadPropertyFile(abc.txt),用完一个后,再调用一次loadPropertyFile(def.txt)
小强哥unas
小强哥unas
回复 @JFinal : 支持!!
如梦技术
如梦技术
回复 @JFinal : 其实jfinal-ext里面的模式非常不错!
chrishao
chrishao
回复 @JFinal : 这是我参照你的loadproperties弄得,知道能不能满足他的需求,发到下面回复了
紫电清霜
紫电清霜
回复 @JFinal : 赞:)
JFinal
JFinal
回复 @小强哥unas : JFinal 下一版本考虑做一个 PropKit 类,到时候可以在任意地方方便地加载配置文件
下一页
1
玛雅牛
玛雅牛

http://my.oschina.net/myaniu/blog/144832

对JFinal的JFinalConfig的一次重构尝试

希望对你有用。

小强哥unas
小强哥unas
多谢分享
0
红星xx
红星xx

JFinal.me().getProperty()  

@JFinal 在config里加载多个配置文件 ,希望能这么用。

0
chrishao
chrishao

不是道这个能否满足呢,这个类我都是在android下用的


package pw.h57.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Properties;

import android.os.Environment;

/**
 * 载入配置文件工具类
 * @author ChrisHao
 * 配置文件示例
 * key1 = value1
 * 一行一个
 * 
 * 在用static配置,载入一个配置后,在载入另一个,以前的会被覆盖,还会考虑是否用个Properties对象给接出来呢,这样就不会有覆盖的事情了
 */
public class LoadConfigUtils {
	public static Properties properties;

	/**
	 * 载入配置文件
	 * @param path 配置文件路径
	 */
	public static void loadProperty(String path){
		//如果路径为空或者空字符串直接返回
		if(path == null){
			return;
		}
		if(path.equals("")){
			return;
		}
		//载入文件
		File file = new File(path);
		InputStream inputStream = null;
		try {
			//放入输入流
			inputStream = new FileInputStream(file);
			//创建Properties对象
			properties = new Properties();
			//载入输入流
			properties.load(inputStream);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if(inputStream != null) {
				try {
					inputStream.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
	
	/**
	 * 判断是否载入了配置文件
	 * @return
	 */
	private static boolean isLoadConfigFile() {
		if(properties == null) {
			return false;
		} else {
			return true;
		}
	}
	
	/**
	 * 通过key在相应的配置文件里面取出相应的值
	 * @param propertyKey 配置文件中的键
	 * @return 配置文件中对应键的值
	 */
	public static String getProperty(String propertyKey){
		if(isLoadConfigFile()){
			String propertyValue = properties.getProperty(propertyKey);
			
			return propertyValue;
		} else {
			return null;
		}
	}
	
	
	public static void setProperty(String propertyKey,String propertyValue){
		if(isLoadConfigFile()){
			try {
				OutputStream outputStream = new FileOutputStream(Environment.getExternalStorageDirectory()
					+ "/lebaobei/config.properties");
				properties.setProperty(propertyKey, propertyValue);
				properties.store(outputStream, "author: crazyhl@163.com");
				outputStream.close();
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
	}
}



小强哥unas
小强哥unas
感谢,感觉osc的开放氛围非常好!!
返回顶部
顶部