2012-07-05 53 views
0

我一直在試圖將SpringCache添加到我的一個Spring管理的服務中。我使用STS作爲我的開發IDE。在grails中使用springcache插件

這裏是我做過什麼:

  1. 安裝springcache 1.3.1插件

  2. 新增的緩存配置Config.groovy中:

    grails.spring.disable.aspectj.autoweaving = true 
    
    springcache { 
        enabled = true 
        defaults { 
         eternal = false 
         diskPersistent = false 
        } 
        caches { 
         tripCache { 
          memoryStoreEvictionPolicy = "LRU" 
         } 
        } 
    } 
    
  3. 新增@Cacheable註釋以上我的測試方法在服務中如下:

    0現在
  4. ,我打電話從控制器這種方法如下:

    def testDashboard() { 
        [data:testService.testInc("1")] 
        } 
    

而且testInc()總是返回我一個新的值,即連續調用返回1,2,3,等等。這使我認爲緩存不起作用。我錯過了什麼,沒有正確開啓緩存?

我試着看看緩存是否可以正常工作,並且我在eCache-2.4.6的源代碼和CachingAspect的invokeCachedMethod中設置了斷點,但是當我運行我的應用程序時,上面的方法看起來並不像被執行。我也試着在緩存中看到「1」的值,看起來像是空的,即密鑰「1」沒有被存儲在緩存中。我添加以下兩行到控制器的測試方法:

 Ehcache c = springcacheService.getOrCreateCache("testCache") 
     String x = c.get("1") 

請幫助!

回答