我想在我的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>() {
...
答案 0 :(得分:3)
使用服务 是最好的选择。但是,将其设置为静态有点不必要,因为默认服务是单例。
服务是一个单独的事实,不仅暴露给您的控制器,而且Grails应用程序中的其他工件也使其非常适合访问对象缓存。单点访问。