当前位置 : 主页 > 编程语言 > c++ >

WEB项目自定义配置使用Servlet加载处理

来源:互联网 收集:自由互联 发布时间:2021-06-30
gistfile1.txt web.xml BaseServlet com.*****.base.BaseServlet log4j WEB-INF\classes\log4j.properties 0 BaseServlet /** * 初始化系统配置 * * @Title: initSystemConfig * @param config * servlet环境配置,用于获取项目基本信息
gistfile1.txt
web.xml
    
 
		
  
   BaseServlet
  
		
  
   com.*****.base.BaseServlet
  
		
   
   
    log4j
    
   
    WEB-INF\classes\log4j.properties
    
  
		
  
   0
  
	
 

BaseServlet
    /**
	 * 初始化系统配置
	 * 
	 * @Title: initSystemConfig
	 * @param config
	 *            servlet环境配置,用于获取项目基本信息
	 * @return void 返回类型
	 * @since V1.0.0
	 */
	private void initSystemConfig(ServletConfig config) {
		String prefix = config.getServletContext().getRealPath("/");
		String file = config.getInitParameter("log4j");
		file = file.substring(0, file.lastIndexOf('\\') + 1) + "system.config";
		String filePath = prefix + file;
		PropertyConfig.configure(filePath);
		
	}
PropertyConfig.java
import java.io.FileInputStream;
import java.util.Hashtable;
import java.util.Properties;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.****.utils.StringUtils;

/**
 * 系统配置信息处理类
 * @author wuqx
 */
public class PropertyConfig {
	
	private static Logger log = LoggerFactory.getLogger(PropertyConfig.class);

	/** 系统配置信息存储容器 */
	private static Hashtable
 
   registry = new Hashtable
  
   (3); /** 系统永驻配置实例 */ private static final PropertyConfig instance = new PropertyConfig(); public PropertyConfig() { // } /** * 获取配置信息实例 * @return PropertyConfig 配置信息类 */ public PropertyConfig getInstance() { return instance; } /** * 通过配置文件路径读取并配置系统配置信息 * @param filePath 配置文件路径 */ public static void configure(String filePath) { Properties props = new Properties(); try { FileInputStream istream = new FileInputStream(filePath); props.load(istream); istream.close(); } catch (Exception e) { log.error("配置文件读取失败。["+ filePath +"]", e); Thread.currentThread().interrupt(); } log.info("成功加载配置文件。[{}]",filePath); configure(props); } /** * 通过Properties类配置系统配置信息 * @param props 系统配置信息 */ public static void configure(Properties props) { // 版本号配置,若配置文件为空,则默认为1.0.0 if(StringUtils.isNotNullAndEmpty(props.getProperty(AppEnv.SYSTEM_VERSION))) { registry.put(AppEnv.SYSTEM_VERSION, props.getProperty(AppEnv.SYSTEM_VERSION)); } else { registry.put(AppEnv.SYSTEM_VERSION, AppEnv.SYSTEM_DEFAULT_VERSION); } if(StringUtils.isNotNullAndEmpty(props.getProperty(AppEnv.SPECIAL_APPID))) { registry.put(AppEnv.SPECIAL_APPID, props.getProperty(AppEnv.SPECIAL_APPID)); } if(StringUtils.isNotNullAndEmpty(props.getProperty(AppEnv.SPECIAL_PUBLIC_KEY))) { registry.put(AppEnv.SPECIAL_PUBLIC_KEY, props.getProperty(AppEnv.SPECIAL_PUBLIC_KEY)); } } /** * 获取对应key的配置信息 * @param key 配置项key * @return Object 配置项值 */ public static Object getConfig(String key) { return registry.get(key); } /** * 获取对应key的配置信息字符串 * @param key 配置项key * @return String 配置项值,为字符串类型 */ public static String getStrConfig(String key) { return (String) registry.get(key); } }
  
 
网友评论