0

Jcache 構成には、共通の XML 構成パラメーター (timetolive など) が必要です。
開発用に EhCache を使用しており、他の環境では Infinispan などの他の Jsr107 準拠のキャッシュ プロバイダーを使用している可能性があります。

単一の構成ファイルを両方のキャッシング プロバイダーで使用することは可能ですか?必要に応じて、異なる環境用にいくつかのパラメーターのみを変更する必要がありますか?

これらのプロパティをプロパティ ファイルで定義し、それらを使用してプロファイルに基づいてキャッシュ マネージャを初期化してもよろしいですか?

jsr107 のドキュメントを調べましたが、一般的な xml キャッシュ属性が見つかりませんでした。

テクノロジー:Spring Boot 1.2.3、Java 7

4

2 に答える 2

0

JSR-107 は、xml、プロパティなど、外部構成に関して何も指定していません。

そのため、外部化された構成ソリューションは、コードまたは [Spring][1] のようなフレームワークによって提供される必要があります。

[1]: Stéphane Nicoll の回答を参照してください

于 2015-11-17T08:17:01.753 に答える
0

それは本当にあなたが使う必要があるものに依存します。一部の設定を構成するために使用できるおよびクラスをJCache公開します。ConfigurationMutableConfiguration

Spring Boot 1.3 (リリース間近) には完全な JCache 統合があります。プロジェクトに JSR-107 プロバイダーを追加すると、Spring Boot が自動的に を作成CacheManagerします。type の Bean を定義するJCacheManagerCustomizerと、アプリケーションがリクエストのサービスを開始する前にキャッシュ マネージャーをカスタマイズするために呼び出されます。

たとえば、これは有効期限ポリシーを変更する非常に基本的な構成です。

@SpringBootApplication
@EnableCaching
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Bean
    public JCacheManagerCustomizer cacheManagerCustomizer() {
        return cm -> {
            MutableConfiguration<Object, Object> configuration = new MutableConfiguration<>()
                .setExpiryPolicyFactory(CreatedExpiryPolicy
                    .factoryOf(Duration.ONE_HOUR));
            cm.createCache("foo", configuration);
        };
    }

}
于 2015-11-14T07:56:43.757 に答える