我们计划使用 Spring 3.1 缓存抽象而不是 Grails Spring 缓存插件。我已经在本地进行了实验,但是在使用 Spring el 表达式时出现了问题,例如
@Cacheable(value = 'dashboardCache', key = 'sessionStorageService.getUser()', condition = 'sessionStorageService.getUser() != null')
public List<BusinessDashboard> getUserDashboards(String serverName, SessionStorageService sessionStorageService) { ... }
执行集成测试用例时出现以下错误
EL1008E:(pos 0): Field or property 'sessionStorageService' cannot be found on object of type 'org.springframework.cache.interceptor.CacheExpressionRootObject'
org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 0): Field or property 'sessionStorageService' cannot be found on object of type 'org.springframework.cache.interceptor.CacheExpressionRootObject'
我认为这种行为是由于缺少调试信息引起的——因此我的问题是:
是否可以在 Grails 应用程序中启用 Spring el 表达式,或者编译过程是否有任何参数告诉 Grails 将调试符号保留在类文件中?
(我们在 Grails 2.0.1 上运行)