在Grails中放置对象缓存的位置?

时间:2014-06-03 07:59:54

标签: grails groovy guava

我想在我的Grails应用程序中使用Guava库中的一些缓存。具有非静态字段的服务类和一些getter是放置此缓存的最佳位置吗?或者它应该是静态的还是在其他地方宣布?

基本示例:

class TestService {
      def getCachedValue(Test test) {
          return testCache.get(test)
      } 

  def testCache = new CacheBuilder()
    .maximumSize(2000)
    .weakKeys()
    .weakValues()
    .expireAfterWrite(30, TimeUnit.SECONDS)
    .build(
        new CacheLoader<Test, Date>() {
                ...

1 个答案:

答案 0 :(得分:3)

使用服务 是最好的选择。但是,将其设置为静态有点不必要,因为默认服务是单例。

服务是一个单独的事实,不仅暴露给您的控制器,而且Grails应用程序中的其他工件也使其非常适合访问对象缓存。单点访问。