2016-09-23 5 views
-1

Springブートプロジェクトで標準の@Cacheable Springアノテーションを使用する別のjarライブラリに標準のSpring @Serviceクラスがいくつかあります。依存関係を宣言し、CacheManagerを構成して作品!Grails Cache Pluginを通常のSpring Service Beanで使用する

私はGrails 3.1プロジェクトで同じことをしようとしていますが、運はありません! 私はhttps://github.com/grails-plugins/grails-cacheはその「独自の」@Cacheableアノテーションを使用する必要があることを発見:私はちょうどGrailsの@Cacheableを使用し、それが働いているが、私はシングルを持っているしたいのですが、いくつかのサービスをフォーク回避策として

http://grails-plugins.github.io/grails-cache/3.0.x/api/grails/plugin/cache/Cacheable.html

@ grailsの下で動作するサービスかどうか!


私は何かを誤って設定しましたが、同じように動作しませんが、私は何か分かりません!

私は春だけ&のGrailsプロジェクトの間にこのJARのlibを共有したいと思いますが、私は「独自の」を使用 Grailsのアプリ/サービスディレクトリ&の下でサービスcalssesをフォークしない限り、これまでのところ、私は、キャッシングの仕事をすることはできません@Cacheableアノテーション。 org.springframework.context.annotation.Bean注釈付き /GPsGrails3/grails-app/init/gpsgrails3/Application.groovy :

iは、プラグインを削除し、豆やでキャッシュを設定してみてください

@Primary 
@Bean 
public ConcurrentMapCacheManager concurrentMapCacheManager() { 
    return new ConcurrentMapCacheManager(); 
} 

@Bean 
public SignatureService signatureService() { 
    SignatureService _signatureService = new SignatureService(); 
    return _signatureService; 
} 

私は、Grailsのアプリ/サービスディレクトリの下signatureServiceを置く:/GPsGrails3/grails-app/services/it/finmatica/ifw/impl/SignatureService.groovy

多分私は私の中で豆を設定する必要があります。 /GPsGrails3/grails-app/conf/spring/resources.grああ?

私はプラグインのバージョン4を使用する必要がありますか? "org.grails.plugins:cache:4. +"

答えて

0

Grails @Cacheableアノテーションを使用する必要はありません。 SpringアプリケーションをGrailsアプリケーションで使用したい場合、Grailsを使用していない場合と同じように動作します。あなたはそれをするためにプラグインを必要としません。

+0

Grailsアノテーションを使用すると、Springのランタイムプロキシ生成メカニズムがそれを認識し、キャッシングを行うプロキシを作成するように、バイトコード内にSpringアノテーションを追加するAST変換がトリガーされます。 –

+0

これは 'cache'プラグインのバージョン4で変更されます。これはコンパイル時にすべてのキャッシングを補完し、ランタイムプロキシを必要としません。必要に応じてSpringアノテーションを使用することはできますが、Groovyで書かれたサービスに対しては、それを行うには多くの理由がありません。 –

関連する問題