`

.xml正向反向取值(之三)

    博客分类:
  • java
 
阅读更多
FileManager类, 续:
//加载配置文件配置信息
	private Properties loadProperties()
	{
		Properties prop = new Properties();
		try
		{
			if (configFile != null)
			{
				FileInputStream in = new FileInputStream(configFile);
				prop.load(in);
			}
			else
			{
				configFile = defaultConfigFile;
				URL url = this.getClass().getClassLoader().getResource(defaultConfigFile);	
				prop.load(new InputStreamReader(url.openStream()));
			}
			
			//print all properties
			Enumeration<?> enu = prop.propertyNames();
			logger.info("Load configuration file[" + configFile + "] start...");
			while (enu.hasMoreElements())
			{
				String key = (String)enu.nextElement();
	        	logger.info(" key: " + key + ",     value: " + prop.getProperty(key));
			}
			logger.info("Load configuration file[" + configFile + "] success.");
			return prop;
		}
		catch (FileNotFoundException e)
		{
			e.printStackTrace();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		return prop;
	}
	
	//对外开放的方法,可以取到监听的文件配置数据
	public static String getProperty(String fileName, String key)
	{
        //如果size为0,则程序没有启动,需要先启动程序
        if (FMap.size() == 0)
        {
            synchronized(FileManager.class)
            {
                if (FMap.size() == 0)
                {
                    //启动监听
                    startService();
                }
            }
        }
		Object obj = FMap.get(fileName);
		if (obj != null)
		{
			FileListener listener = (FileListener)obj;
			
			if (listener.isFileFlag())
			{
				return listener.getProperties().getProperty(key);
			}
			else
			{
				return listener.getTransferValue(key);
			}
//			Properties prop = ((FileListener)obj).getProperties();
//			return prop.getProperty(key);
		}
		else
		{
			return null;
		}
	}
	
		
	//提供给ESB使用的方法,取ESB配置文件数据
	public static String getESBProperty(String key)
	{
		return getProperty("esb.properties", key);
	}
	
	public static String getTransferValue(String type,String value)
	{
		StringBuffer buf = new StringBuffer(type).append("||")
		                                         .append(XMLParserHelper.ORIGINALL_VALUE)
		                                         .append("||")
		                                         .append(value);
		return getProperty(ENUMERATE,buf.toString());
	}
	
	public static String getOriginallyValue(String type,String value)
	{
		StringBuffer buf = new StringBuffer(type).append("||")
											     .append(XMLParserHelper.TRANSFER_VALUE)
											     .append("||")
											     .append(value);
		return getProperty(ENUMERATE,buf.toString());
	}
	
	
	//启动监听服务
	private static void startService()
	{
		FileManager fm = new FileManager();
		fm.regFileListener();
	}
}

分享到:
评论

相关推荐

    opencv的各种haarcascade.xml文件

    haarcascades\haarcascade_eye.xml haarcascades\haarcascade_eye_tree_eyeglasses.xml haarcascades\haarcascade_frontalface_alt.xml haarcascades\haarcascade_frontalface_alt2.xml haarcascades\haar...

    License.xml 破解码

    License.xml 破解码License.xml 破解码License.xml 破解码License.xml 破解码License.xml 破解码License.xml 破解码License.xml 破解码License.xml 破解码License.xml 破解码License.xml 破解码License.xml 破解码...

    AndroidManifest.xml反编译工具

    在Android应用开发中,`AndroidManifest.xml`是一个至关重要的文件,它包含了应用程序的基本配置和元数据,如应用的包名、所需权限、启动活动、服务、接收器等。本话题将详细探讨`AndroidManifest.xml`的反编译工具...

    javax.xml.bind.jar

    javax.xml.bind.jar

    hibernate.cfg.xml

    hibernate.cfg.xml hibernate框架的配置文件

    javax.xml.ws.Service 报错需要的包

    在Java开发中,`javax.xml.ws.Service` 是一个核心组件,属于Java API for XML Web Services (JAX-WS)的一部分,用于创建客户端和服务端的Web服务代理。报错通常表明缺少必要的依赖包,这可能会影响到程序的正常运行...

    javax.xml.stream_1.0.1.v201004272200.jar

    javax.xml.stream_1.0.1.v201004272200.jar

    人脸识别需要的haarcascade_frontalface_default.xml文件

    haarcascade_frontalface_default.xml 和 haarcascade_eye.xml 文件是OpenCV库中用于人脸检测和眼睛检测的重要数据结构。 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,...

    javax.xml.bind.jar 包

    在集成阿里云移动推送时,部署到服务器的时候遇到了java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter 错误,产生原因是缺少javax.xml.bind.DatatypeConverter

    提取apk文件中的AndroidManifest.XML

    AndroidManifest.xml是APK的核心组件之一,它提供了应用的基本配置信息,包括应用名称、版本、所需权限、服务、活动、广播接收器等。当我们需要深入分析或修改一个APK时,提取AndroidManifest.xml就显得尤为重要。本...

    codetemplates.xml

    codetemplates.xml

    unity3d读取xml插件Mono.Xml

    Unity3D是一款强大的跨平台游戏开发引擎,广泛应用...然而,需要注意的是,虽然Mono.Xml提供了基础的XML处理功能,但它的功能相对有限,对于更复杂的需求,可能需要考虑使用其他如System.Xml的库或者第三方XML解析库。

    haarcascade_eye.xml

    haarcascade_eye.xml

    lang_zh_cn.xml

    foxit reader的中文包lang_zh_cn.xml。

    PluginManagerPlugins.xml文件

    解决Notepad++ Plugin Manager无法加载插件的方法。把PluginManagerPlugins.xml放在这个目录下C:\Users\你主机系统用户\AppData\Roaming\Notepad++\plugins\config 重新打开软件

    apns-conf.xml

    网络上很多的APN文件,看了许多,没有带电信参数的,花费一晚上的时间,通宵写成了这个,确切的说是改成了这个集成了中国电信相关参数的apns-conf.xml文件,借阅请说明出处,谢谢

    Maven原版settings.xml配置文件(下载)

    Maven原版settings.xml配置文件,根据个人需要,可以打开对应注释或替换相关阿里云镜像或远程仓库地址即可使用。

    maven pom.xml 动态读取变量值插件

    该jar包功能,可以在一个properties文件里面定义jdbc.url=${url},在另一个properties文件定义具体的值,通过该jar可以获取到哪个具体的值。下载之后,自行安装到本地...具体pom.xml配置使用可以参考网络其他博文,谢谢

    main-menu.xml

    mysqlWorkbench 汉化

    codetemplates.xml下载(Eclipse 注释代码模板文件)

    codetemplates.xml下载(Eclipse 注释代码模板文件)

Global site tag (gtag.js) - Google Analytics