0

我们需要为 Jcache 配置提供通用的 XML 配置参数(例如 timetolive)。
我们正在使用 EhCache 进行开发,并且可能在其他环境中使用其他一些符合 Jsr107 的缓存提供程序,例如 Infinispan。

是否可以让两个缓存提供程序都使用单个配置文件,并且如果需要,我们只需要针对不同的环境更改一些参数?

是否可以在属性文件中定义这些属性并使用它们来根据 Profile 初始化缓存管理器?

我浏览了 jsr107 文档,但没有找到常见的 xml 缓存属性。

技术:Spring Boot 1.2.3,Java 7

4

2 回答 2

0

这真的取决于你需要使用什么。JCache公开可用于配置某些设置的 aConfiguration和类。MutableConfiguration

Spring Boot 1.3(即将发布)有完整的JCache集成;当您在项目中添加 JSR-107 提供程序时,Spring Boot 会自动CacheManager为您创建一个。如果您定义一个 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 回答
0

JSR-107 没有指定任何关于外部配置的内容 - xml、属性,你可以命名它。

因此,任何外部化配置解决方案都必须由您的代码或 [Spring][1] 等框架提供。

[1]:见 Stéphane Nicoll 的回答

于 2015-11-17T08:17:01.753 回答