簡體   English   中英

如何在沒有方法參數的方法上使用@cacheable注釋的鍵

[英]How to use key for @cacheable annotation on a method which doesn't have a method parameter

我有一個緩存方法,一個緩存逐出的方法我想使用緩存鍵屬性來訪問緩存,如何強制或鎖定調用此方法的人使用相同的密鑰。

我試過這樣的事情但是,這似乎不對。 方法參數(cachekey)可以作為調用者所需的任何值傳遞。

@Cacheable(value = "cacheNamex" , key ="#cachekey") 
    public   List  someCachableMethod(String cacheKey ) {
        List someList = someJdbctemplet.query(SOME_QUERY, someRowMapperObj);
        System.out.println(" data Returned from method");
        return someList;
    }
@CacheEvict((value = "cacheNamex" , key ="#cachekey") 
    public void someCacheEvictMethod(String cacheKey ){
           System.out.println("cache eviction called");
           System.out.println(" Expecting cache, cachex is cleared ");  }

如果您的方法沒有任何參數,只需將相同的方法名稱作為鍵,並將其用於Evict:

@Cacheable(value = "cacheNamex" , key ="'someCachableMethod'")
 public   List  someCachableMethod() {
 }
 @CacheEvict((value = "cacheNamex" , key ="'someCachableMethod'") 
 public void someCacheEvictMethod(){
}

如果您的方法沒有參數,則可以使用沒有鍵值的注釋,如果您想了解有關此主題的更多信息,請參閱http://docs.spring.io/spring/docs/current/spring-framework-reference/ spring文檔中的html / cache.html#cache-annotations-cacheable-default-key ..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM