当前位置: 首页 > 知识库问答 >
问题:

在Spring缓存中存储字符串并逐出

焦学海
2023-03-14

我想为Spring Cache执行以下操作。

>

  • 检查传递的字符串是否存在于缓存中。如果存在,则返回true,如果不存在,则添加到缓存;checkInCache(字符串str)

    从缓存逐出字符串(String str)

    尝试如下

    @组件公共类FlightCache{

    public static final Logger log = LoggerFactory.getLogger(FlightCache.class);
    
    @Autowired
    CacheManager cacheManager;
    
    public boolean isFlightKeyPresent(final String flightKey) {
        final ValueWrapper existingValue = cacheManager.getCache("flightCache").get(flightKey);
        log.info("existingValueexistingValue " + existingValue);
        if (existingValue == null) {
            cacheManager.getCache("flightCache").put(flightKey, flightKey);
            return false;
        } else {
            return true;
        }
    }
    

    并在配置类上添加了@EnableCaching注释。

    错误:

     required a bean of type 'org.springframework.cache.CacheManager' that could not be found. The injection point has the following annotations:   - @org.springframework.beans.factory.annotation.Autowired(required=true)Action:Consider defining a bean of type 'org.springframework.cache.CacheManager' in your configuration.
    
  • 共有1个答案

    吴高远
    2023-03-14

    >

  • 要检查缓存是否包含密钥,您可以这样做:

    @自动连线CacheManager CacheManager;

    布尔isKeyPresent(Object key){cacheManager.getCache(“MyCacheName”).get(key)!=null;}

    要收回密钥,可以执行以下操作:

    @自动连线CacheManager CacheManager;

    布尔cacheexit(对象键){cacheManager.getCache(“MyCacheName”).execifpresent(键);}

  •  类似资料:
    • 我使用Spring缓存抽象,定义了多个缓存。有时,当数据更改时,我想逐出多个缓存。是否可以使用Spring的CacheExit注释逐出多个缓存?

    • 我有一个关于内存系统遵循的策略的基本问题。 考虑一个具有私有L1和L2缓存的核心。在L2缓存之后,我们有一个相干流量运行的总线。现在,如果从L2高速缓存中逐出地址(X)的高速缓存行,是否有必要从L1高速缓存中逐出该地址?? 逐出的原因可能是它有助于保持一致性协议的不变[如果l2中的一行显示无效,则此核心不包含此地址]。

    • 我有一个Base64编码的字符串(这是AES加密的字符串)。我正试图将它存储在Firebase存储,然后从它下载。 我尝试过多种选择,例如 这不会在存储中保留base64字符串,而是将其转换为整数。我还尝试提供{contenttype:“application/base64”},但是putString似乎不起作用。 我只是在寻找一个非常简单的base64编码字符串到firebase存储的上传和下载

    • 问题内容: 但 为什么仅在分配字符串时才获得相同的id()结果? 编辑:我用“字符串”代替“ ASCII字符串”。感谢您的反馈 问题答案: 这与ASCII与非ASCII无关(您的“非ASCII”仍然是ASCII,只是标点符号,而不是字母数字)。CPython作为实现细节,将仅包含“名称字符”的字符串常量进行实习。在这种情况下,“名称字符”与正则表达式转义的含义相同:字母数字加下划线。 注意:这可以

    • 但是 为什么只有在赋值字符串时才能得到相同的id()结果? 编辑:我将“ascii字符串”替换为“字符串”。感谢您的反馈

    • 问题内容: 我们如何从文本文件读取数据并将其存储在String变量中? 是否有可能在方法中传递文件名,并且它将返回字符串,即文件中的文本。 我必须导入哪种工具?声明列表会很棒。 问题答案: 这些是必需的进口: 这是一种方法,通过将文件名作为参数传递给它,您可以从文件中进行读取,如下所示: