標準の @Cacheable Spring アノテーションを使用する別の jar lib に標準の Spring @Service クラスがいくつかあります。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 が必要です!
私は何かを誤って設定しました。同じように動作しませんが、それが何であるかわかりません!
この jar lib を spring only と grails プロジェクトの間で共有したいのですが、今のところ、grails-app/services ディレクトリの下でサービス calsses を fork し、'proprietary' @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;
}
grails-app/services ディレクトリの下に signatureService を置きます: /GPsGrails3/grails-app/services/it/finmatica/ifw/impl/SignatureService.groovy
/GPsGrails3/grails-app/conf/spring/resources.groovy で Bean を設定する必要があるかもしれません。
プラグインのバージョン 4 を使用する必要がありますか? 「org.grails.plugins:cache:4.+」をコンパイルします