在spring缓存中存储一个字符串并逐出

rqdpfwrv  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(381)

我想对spring缓存执行以下操作。
检查传递的字符串是否存在于缓存中。如果存在则返回true,如果不存在则添加到缓存中;checkincache(字符串str)
从缓存中逐出字符串逐出(string str)
像下面这样试过
@Component 公共类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.
9rbhqvlz

9rbhqvlz1#

要检查缓存包含密钥,可以执行以下操作:
@自动连线缓存管理器;
布尔iskeypresent(对象键){cachemanager.getcache(“mycachename”).get(键)!=空;}
要收回密钥,可以执行以下操作:
@自动连线缓存管理器;
布尔cacheevict(object key){cachemanager.getcache(“mycachename”).evictifpresent(key);}

相关问题