gpt4 book ai didi

java - 如何在不使用 hibernate/spring 拦截器的情况下为独立 Java 程序配置 EHcache?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:56:21 25 4
gpt4 key购买 nike

任何人都可以发布一个示例来为独立的 Java 应用程序配置 Ehcache 吗?

我有以下简单要求:

  • 从数据库获取数据,
  • 格式化数据和
  • 写入文件

我正在使用 jdbctemplate.Query,它执行得很快,但是从列表中检索需要很长时间。 List 包含大量数据(结果集)。

谁能建议如何解决这个问题?

最佳答案

这是一个非常古老的帖子,但它似乎经常被回击,所以......

你应该听从 Pascal 的建议并阅读这些示例,但这里有一段示例代码可以帮助你入门(从 Scala 翻译而来,我没有完全检查语法)

  1. 首先,将 net.sf.ehcache:ehcache:2.9.0 及其依赖项放入您的 ClassPath 中

  2. 创建缓存,很简单

    CacheManager cacheMgr = CacheManager.newInstance();

    //Initialise a cache if it does not already exist
    if (cacheMgr.getCache("MyCache") == null) {
    cacheMgr.addCache("MyCache");
    }

在您的代码中仅实例化 CacheManager 一次并重用它。

  1. 缓存的行为由名为 ehcache.xml 的 XML 配置文件决定,该文件必须在类路径中可用。您也可以通过编程方式进行。该文件可能看起来像
    <ehcache>
<diskStore path="java.io.tmpdir"/>
<cache name="MyCache"
maxEntriesLocalHeap="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
maxEntriesLocalDisk="10000000"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
>
<persistence strategy="localTempSwap"/>
</cache>
</ehcache>

有关参数的详细信息,请查看http://ehcache.org/documentation/2.8/configuration/configuration

  1. 使用它

    //use it
    Cache cache = cacheMgr.getCache("MyCache");

    //Store an element
    cache.put(new Element("key", mySerializableObj));

    //Retrieve an element
    Element el = cache.get("key");
    Serializable myObj = <Serializable>el.getObjectValue();

尝试存储可序列化对象,以便轻松溢出到存储设备。

关于java - 如何在不使用 hibernate/spring 拦截器的情况下为独立 Java 程序配置 EHcache?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3694861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com