2017-06-20 6 views
0

定義済みのキャッシュを使用するモジュールの代わりに複数のehcahe.xml設定ファイルを使用しようとしています。マルチブートプロジェクトでのehcacheの起動方法

ehcache.xmlの設定が、Springブートアプリケーションが起動されているapp-webモジュールのリソースの下に置かれるのは、@EnableCachingで問題なく動作します。

@SpringBootApplication 
@Import({ CommonApp.class, CoreConfig.class}) 
@EnableSwagger2 
@EnableCaching 
public class WebApplication extends WeblogicMvcConfigurerAdapter { 
} 

しかし、APP-コアモジュールの下に置き、@EnableCachingは、それが実行時に失敗WebApplicationによってインポートさCoreConfig下に移動させる構成がある場合。 @Cacheable方法は、私が

java.lang.IllegalArgumentException: Cannot find cache named 'systemParameterCache' 

私のアイデアを得ていると呼ばれる

@Configuration 
@ComponentScan 
@EnableCaching 
public class CoreConfig { 

} 

は、すべてのモジュールは、そのモジュールに属しているキャッシュを持つ独自のehcache.xmlの構成を有することができるということです。

このように使用できますか?私は間違っているの?

ありがとうございます!

答えて

0

可能です。しかし、私はそれをお勧めしません。アプリケーション内の1つのキャッシュマネージャーで十分です。多くを持つことは、何のためにもリソースを消費することです。キャッシュに異なる名前を付けることができない場合は、モジュール接頭辞を使用することをお勧めします。

次に、モジュールの意味がわかりません。 @EnableCachingはアプリケーションで1回指定されることが期待されます。

しかし、CoreConfigで指定されているとうまくいくはずです。ただし、キャッシュ設定でsystemParameterCacheを作成する必要があります。ここにあなたの問題があるようです。

+0

私は、CacheManagerを 'common'で定義し、それを複数のモジュールで共有しようとしていました([EhCacheManagerFactoryBean](https://docs.spring.io/spring/docs/current/javadoc-このモジュールから使用される 'ehcache.xml'コンフィグレーションを使用して、適切なモジュールとキャッシュ用にコンフィグレーションされたカスタムキャッシュプロバイダでこのCacheManagerインスタンスを使用することをお勧めします。 Spring Bootがデフォルトでそのようなものを提供しているかどうか不思議でした。 とにかくお返事ありがとうございます! – Kuciin

関連する問題