`
conquer0
  • 浏览: 78415 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

cacheConfig.xml中读取配置文件信息一2010-07-07

阅读更多
package com.huawei.support.cache.impl;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

/**
* 从cacheConfig.xml中读取配置文件.
*/
public final class CacheConfigReader
{
    /**
     * sLog
     */
    private static Log sLog = LogFactory.getLog(CacheConfigReader.class);
    /**
     * 本实例
     */
    private static CacheConfigReader sInstance;
    /**
     * 最终修改时间
     */
    private static long sLastModified = -1;
    /**
     * 缓存服务器列表
     */
    private static String[] sServerList;
    /**
     * 默认Keyspace
     */
    private static String sDefaultKeyspace;
    /**
     * 默认ColumnFamily
     */
    private static String sDefaultColumnFamily;
    /**
     * DataBinding Map
     */
    private static Map<String, String> sDataBindingMap =
        new HashMap<String, String>();

    /** 默认构造函数.
     * @param aConfigFile 配置文件名
     */
    private CacheConfigReader(String aConfigFile)
    {
        try
        {
            DocumentBuilderFactory factory =
                DocumentBuilderFactory.newInstance();
            factory.setNamespaceAware(true);
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document doc = builder.parse(aConfigFile);
            XPathFactory pathFactory = XPathFactory.newInstance();
            XPath xpath = pathFactory.newXPath();
            // 解析缓存服务器列表.
            sServerList = readServerList(xpath, doc);
            // 解析默认Keyspace.
            sDefaultKeyspace = readDefaultKeyspace(xpath, doc);
            // 解析默认ColumnFamily
            sDefaultColumnFamily = readDefaultColumnFamily(xpath, doc);
            // 解析DataBindings.
            sDataBindingMap = readDataBindingMap(xpath, doc);
        }
        catch (ParserConfigurationException e)
        {
            sLog.error(e);
        }
        catch (XPathExpressionException e)
        {
            sLog.error(e);
        }
        catch (IOException e)
        {
            sLog.error(e);
        }
        catch (SAXException e)
        {
            sLog.error(e);
        }
    }
分享到:
评论

相关推荐

    Coherence企业级缓存(五)与Hibernate集成(2) .pdf

    在Hibernate配置文件中,需要指定Coherence作为缓存提供者,并开启查询缓存和最小化put操作等功能。具体配置示例如下: ```xml &lt;property name="hibernate.cache.provider_class"&gt; ...

    springmvc集成Ehcache

    在Spring MVC的配置文件(如:applicationContext.xml)中,我们需要声明一个`CacheManager`bean,它是Ehcache的核心组件: ```xml &lt;bean id="cacheManager" class="org.springframework.cache.ehcache....

    spring boot集成redis做为通用缓存的实战demo,帮助大家彻底掌握s-cache-practice.zip

    这个实战项目 "s-cache-practice" 可能会包含示例代码、配置文件以及详细的说明,帮助你一步步地实践这个过程。在学习过程中,你可以理解每一步的作用,加深对 Spring Boot 和 Redis 整合的理解,从而在实际项目中...

    Spring缓存

    2. **配置Ehcache**:创建一个`ehcache.xml`配置文件,指定缓存策略,如缓存大小、过期时间等。 3. **启用Spring Cache**:在Spring的配置文件中启用缓存管理,并指定使用的缓存实现为Ehcache。 4. **配置Bean**:...

    hibernate二级缓存实战之EhCacheProvider

    首先,我们需要在Hibernate配置文件(通常是`hibernate.cfg.xml`或`persistence.xml`)中启用二级缓存,并指定EhCache为提供者。这通常涉及以下配置: ```xml &lt;property name="hibernate.cache.use_second_level_...

    自己编写泛型通用 Ehcache入门

    1. **XML配置**:Ehcache 提供了XML配置文件来设置缓存策略,如缓存大小、存活时间和过期时间等。以下是一个基本配置示例: ```xml &lt;!-- 更多配置 --&gt; ``` 2. **Programmatic配置**:也可以通过Java代码...

    springboot 使用spring cache缓存 和 使用fastjson配置redis系列化

    接下来,配置文件`application.yml`中,我们可以使用Redis的默认配置,如果需要自定义配置,例如连接池、密码等,可以按需添加。 在应用中启用Spring Cache,我们需要创建一个配置类,该类使用`@EnableCaching`注解...

    Spring+Redis整合例子

    在Spring应用中整合Redis,首先需要在配置文件(如application.properties或yaml)中添加Redis服务器的相关连接信息,包括主机名、端口号、密码等。例如: ``` spring.redis.host=localhost spring.redis.port=...

    springboot整合Redis缓存源代码

    最后,`.gitignore`文件通常用来忽略构建过程中产生的临时文件和IDE的配置文件,例如`.mvn`, `.idea`, `target`目录下的内容,防止这些无用的文件被提交到版本库。 总的来说,SpringBoot整合Redis缓存是一个涉及...

    Spring整合Redis用作缓存-注解方式

    在Spring Boot应用中,可以通过`application.yml`或`application.properties`配置文件设置Redis连接信息,如主机地址、端口、密码等: ```yaml spring: redis: host: localhost port: 6379 ``` 创建...

    echache缓存注解说明文档

    这里,`ehcache.xml`是Ehcache的配置文件,定义了具体的缓存策略和设置。 总的来说,Spring Cache通过注解简化了缓存的管理,使得开发者能更专注于业务逻辑,而不是缓存细节。通过合理使用`@Cacheable`、`@...

    Hibernate4二级缓存实例(源码)

    集成过程通常包括配置Hibernate的配置文件(hibernate.cfg.xml),添加依赖,以及定义实体类的缓存策略。 4. **源码分析**:提供的源码可能包含了项目的结构、配置文件、实体类、DAO层代码等。通过分析这些代码,...

    Springboot中使用缓存的示例代码

    使用 Ehcache 只需要在工程中加入 ehcache.xml 配置文件并在 pom.xml 中增加 Ehcache 依赖,框架只要发现该文件,就会创建 EhCache 的缓存管理器。 Ehcache 的配置文件可以通过 application.properties 文件中使用 ...

    springboot 使用springCache(1).zip

    在项目中,我们需要在`pom.xml`文件中引入SpringBoot的相关依赖,包括`spring-boot-starter-web`和`spring-boot-starter-cache`,后者用于启用SpringCache支持。 接下来,我们需要配置SpringCache。这通常在`...

    Spring Cache整合Redis实现方法详解

    然后,在application.properties文件中配置Redis连接信息,例如: ``` spring.redis.port=6380 spring.redis.host=192.168.66.128 spring.cache.cache-names=c1 ``` 然后,在启动类上添加@EnableCaching注解,表示...

Global site tag (gtag.js) - Google Analytics