我在一个单独的jar lib中有一些标准的Spring @Service类,它使用标准的@Cacheable Spring注释,在Spring启动项目中,我声明了依赖关系,配置了一个CacheManager并且正常工作!
我尝试在Grails 3.1项目中做同样的事情,但没有运气! 我发现https://github.com/grails-plugins/grails-cache需要使用其专有的' @Cacheable注释:
http://grails-plugins.github.io/grails-cache/3.0.x/api/grails/plugin/cache/Cacheable.html
作为一种解决方法,我只是为了使用Grails @Cacheable而提供了一些服务并且它正在运行,但是我希望有一个@Service可以在grails下工作!
我的配置错误,它的行为方式不一样,但我无法弄清楚它是什么!
我想在春天和春天之间分享这个jar lib。 grails项目,但到目前为止,我不能使缓存工作,除非我分叉服务calsses grails-app / services目录&使用'专有' @Cacheable注释;
我尝试删除插件并在以下位置配置bean和缓存: /GPsGrails3/grails-app/init/gpsgrails3/Application.groovy 使用org.springframework.context.annotation.Bean注释:
@Primary
@Bean
public ConcurrentMapCacheManager concurrentMapCacheManager() {
return new ConcurrentMapCacheManager();
}
@Bean
public SignatureService signatureService() {
SignatureService _signatureService = new SignatureService();
return _signatureService;
}
我将signatureService放在grails-app / services目录下: /GPsGrails3/grails-app/services/it/finmatica/ifw/impl/SignatureService.groovy
也许我必须配置我的bean: /GPsGrails3/grails-app/conf/spring/resources.groovy?
我必须使用插件的第4版? 编译" org.grails.plugins:cache:4。+"
答案 0 :(得分:0)
我不确定问题是什么,但您不必使用Grails @Cacheable
注释。如果你想在Grails应用程序中使用Spring,你可以,并且它的行为方式与你不使用Grails的方式相同。你甚至不需要这个插件就可以了。