在bootstrap中,我想:
是否有插件可以帮助我这样做?
答案 0 :(得分:3)
它看起来不像缓存(即临时值,短暂,可能在任何时刻丢失),它是预先计算的值。不要认为缓存插件会有所帮助。
基本上你需要一个地方来保持这个价值。它可以是任何实际的,例如来自基本POJO类的static
变量。但是,如果我们正在谈论Grails,我建议制作一个特殊的服务,它将存储价值,有一个获取它的方法,并且可能是一个进行初始计算的方法。服务是一个单独的,在不同的工件之间共享,将来很容易扩展新的逻辑,重构并支持这些代码。与缓存中的某些神奇价值相比,更容易理解/记住。
像:
class SuperValueService {
def value
void refresh() {
value = ...
}
}
Init in bootstrap:
class Bootstrap {
def superValueService
def init { ->
superValueService.refresh()
}
}
并从控制器使用:
class MyController {
def superValueService
def action() {
render models: [superValue: superValueService.value]
}
}
答案 1 :(得分:0)
我正在使用compile 'com.google.guava:guava:18.0-rc2'
see wiki,这也提供了自动驱逐。