0

我在一个单独的 jar 库中有一些标准的 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 并且它正在工作,但我希望有一个在 grails 下工作的 @Service !


我错误配置了一些东西,它的行为方式不同,但我不知道它是什么!

我想在 spring only 和 grails 项目之间共享这个 jar 库,但到目前为止,我无法进行缓存工作,除非我在 grails-app/services 目录下分叉服务类并使用“专有”@Cacheable 注释;

我尝试删除插件并使用 org.springframework.context.annotation.Bean 注释在 /GPsGrails3/grails-app/init/gpsgrails3/Application.groovy 中配置 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

也许我必须在 /GPsGrails3/grails-app/conf/spring/resources.groovy 中配置我的 bean?

我必须使用插件的版本 4?编译“org.grails.plugins:cache:4.+”

4

1 回答 1

0

我不确定问题是什么,但您不必使用 Grails@Cacheable注释。如果您想在 Grails 应用程序中使用 Spring 应用程序,则可以,并且它的行为方式与您不使用 Grails 时的行为方式相同。你甚至不需要插件就可以做到这一点。

于 2016-09-23T17:25:26.877 回答