從0開始寫JavaWeb框架系列(1)從0開始寫SamrtFrameWork:讀取配置文件

SmartFrameworkjava

1、讀取配置文件
  

1.加入第三方開源jar數據庫

    
2.編寫smart.properties配置文件( 數據庫鏈接和路徑的配置 base_package:基礎包名,/WEB-INF/view/:jsp基礎路徑,asset_path:靜態文件基礎路徑 )app

    

 


3.加載smart.properties配置項到內存
    3.1 ConfigConstant.java提供Properties文件的key相關配置常量jsp

package org.smart4j.framework;
/**
 * 提供相關配置項常量
 * @author tianshuo
 * @since  1.1
 */
public interface ConfigConstant {

	String  CONFIG_FILE = "smart.properties";
	String	JDBC_DRIVER ="smart.framework.jdbc.driver";
	String	JDBC_URL ="smart.framework.jdbc.url";
	String	JDBC_USERNAME = "smart.framework.jdbc.username";
	String	JDBC_PASSWORD="smart.framework.jdbc.password";
	String	APP_BASE_PACKAGE="smart.framework.app.base_package";
	String	APP_JSP_PATH="smart.framework.app.jsp_path";
	String	APP_ASSET_PATH="smart.framework.app.asset_path";
}


    3.2 PropsUtil.java簡化Properties文件讀取的工具類工具

package org.smart4j.framework.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * Properties文件讀取工具類
 * @author Admin
 *
 */
public class PropsUtil {

	/**
	 * 加載properties配置文件工具類
	 * @param fileConfig
	 * @return
	 */
	public static Properties loadProps(String fileConfig){
		Properties properties = new Properties();
		try {
			InputStream in = Object.class.getResourceAsStream("/" + fileConfig);
			properties.load(in);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return properties;
	}

	/**
	 * 根據傳入的properties文件對象的key得到value
	 * @param properties
	 * @param key
	 * @return value
	 */
	public static String getString(Properties properties,String key){
		String value = properties.getProperty(key);
		return value;
	}

	/**
	 *  根據傳入的properties文件對象的key得到value,提供可選的路徑配置項pathCustom
	 * @param properties
	 * @param key
	 * @param pathCustom 自定義配置項,傳入null默認加載配置文件key
	 * @return value
	 */
	public static String getString(Properties properties,String key,String pathCustom){
		if( pathCustom != null ){
			return pathCustom;
		}else{
			String value = properties.getProperty(key);
			return value;
		}
	}

}

    3.3 ConfigHelper.java讀取Properties文件的Valueurl

    

package org.smart4j.framework.helper;

import java.util.Properties;
import org.smart4j.framework.ConfigConstant;
import org.smart4j.framework.util.PropsUtil;

/**
 * 屬性文件助手類
 * @author
 *
 */
public final class ConfigHelper {

	private static final Properties CONFIG_PROPS =  PropsUtil.loadProps(ConfigConstant.CONFIG_FILE);

	/**
	 * 獲取JDBC用戶名
	 * @return
	 */
	public static String getJdbcUsername(){
		return PropsUtil.getString(CONFIG_PROPS, ConfigConstant.JDBC_USERNAME);
	}
	
	/**
	 * 獲取JDBC密碼
	 * @return
	 */
	public static String getJdbcPassword(){
		return PropsUtil.getString(CONFIG_PROPS, ConfigConstant.JDBC_PASSWORD);
	}
	
	/**
	 * 獲取應用基礎包名
	 * @return
	 */
	public static String getAppBasePackage(){
		return PropsUtil.getString(CONFIG_PROPS, ConfigConstant.APP_BASE_PACKAGE);
	}
	
	/**
	 * 獲取應用jsp基礎路徑
	 * @return
	 */
	public static String getAppJspPath(){
		return PropsUtil.getString(CONFIG_PROPS, ConfigConstant.APP_JSP_PATH,"/WEB-INF/view");
	}
	
	/**
	 * 獲取應用靜態資源基礎路徑
	 * @return
	 */
	public static String getAppAssetPath(){
		return PropsUtil.getString(CONFIG_PROPS, ConfigConstant.APP_ASSET_PATH,"/asset/");
	}
	
	
	
	
	//Test
	public static void main(String[] args) {
		System.out.println(ConfigHelper.getJdbcUsername());
		System.out.println(ConfigHelper.getJdbcPassword());
		System.out.println(ConfigHelper.getAppBasePackage());
		System.out.println(ConfigHelper.getAppJspPath());
		System.out.println(ConfigHelper.getAppAssetPath());
	}
}

 

 

---------------------------------------summarize(總結):至此數據庫配置和路徑配置已經讀取完畢-------------------------------------spa

相關文章
相關標籤/搜索