`

.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...

    javax.xml.rpc相关jar包

    而`javax.xml.rpc`是Java平台标准版(Java SE)的一部分,它提供了一组API来支持Web服务的开发。这个API集允许开发者创建、部署和调用基于J2EE(Java 2 Platform, Enterprise Edition)的Web服务。 标题中的“javax...

    opencv分类器 人脸 人眼 上身 鼻子 耳朵等等 检测的.xml文件

    haarcascade_eye.xml'haarcascade_eye_tree_eyeglasses.xml'haarcascade_frontalcatface.xml'haarcascade_frontalface_alt.xml'haarcascade_frontalface_alt2.xml'haarcascade_frontalface_alt_tree.xml'haarcascade...

    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

    提取apk文件中的AndroidManifest.XML

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

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

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

    hibernate.cfg.xml

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

    javax.xml.stream_1.0.1.v201004272200.jar

    javax.xml.stream_1.0.1.v201004272200.jar

    APK AndroidManifest.xml 解密工具

    一个解密apk 包中AndroidManifest.xml 的工具,命令行直接使用,生成一个明文的xml 文件。 AndroidManifestConver.exe c:\src.xml c:\dest.xml

    人脸识别需要的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

    maven settings.xml 直接下载使用

    国内连接maven官方的仓库更新依赖,收集一些国内快速的maven仓库镜像以备用。 settings.xml配置好的国内私服,直接可以下载使用!

    maven中settings.xml文件下载

    settings.xml配置

    codetemplates.xml

    codetemplates.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 重新打开软件

    maven archetype-catalog.xml 下载

    `archetype-catalog.xml`是Maven骨架目录的一个元数据文件,它包含了所有可用的骨架信息。 `archetype-catalog.xml`文件的作用在于,它是一个骨架仓库的目录清单,列出了该仓库中所有的Maven骨架。这些骨架可以被...

Global site tag (gtag.js) - Google Analytics