2015-08-18 3 views
0

Я создал новые Grails 3.0.3 приложения, как: Grails создать приложение cache_testGrails 3.0.3 кэширование не работает

Добавлен один единый контроллер в там один метод:

package cache_test 

import grails.plugin.cache.Cacheable 
import org.springframework.beans.factory.annotation.Autowired 
import org.springframework.cache.CacheManager 

class IndexController { 

    @Autowired 
    CacheManager grailsCacheManager 

    @Cacheable(value = "index") 
    def index() { 
     System.err.println("Invoked") 
     render("Hello man") 
    }} 

И I ожидайте, что результат метода index() будет в кеше после первого вызова, однако этот метод вызывается каждый раз при отправке запроса.

Что я не так понял?

+0

Однако, если я делаю то же кэширование в обслуживании - это действительно работает. Поэтому я не понимаю разницы - почему он работает в службах, но не работает в контроллерах? –

+0

Я отправил также дефект на grails github https://github.com/grails/grails-core/issues/9193 –

ответ

0

Кажется, существует регрессия плагина кегля Grails.

Мне пришлось написать свой собственный перехватчик для контроллеров, который в основном кэширует ответ по URL-адресам запроса.

Гадкий, багги, но работает https://github.com/vkorobkov/grails-3-caching-workaround/

Смежные вопросы