首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以为jsr107的所有缓存提供程序供应商配置通用xml?

是否可以为jsr107的所有缓存提供程序供应商配置通用xml?
EN

Stack Overflow用户
提问于 2015-11-14 06:53:38
回答 2查看 919关注 0票数 0

对于Jcache配置,我们需要有通用的XML配置参数(比如timetolive)。

我们正在使用EhCache for Development,并且可能在其他环境中使用其他兼容Jsr107的缓存提供程序,比如Infinispan。

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

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

我查看了jsr107文档,但没有找到常见的XML缓存属性。

技术:SpringBoot1.2.3,Java 7

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-14 07:56:43

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

SpringBoot1.3(即将发布)具有完整的JCache集成;当您在项目中添加一个JSR-107提供程序时,Spring将自动为您创建一个CacheManager。如果您定义了一个类型为JCacheManagerCustomizer的bean,它将在应用程序开始处理请求之前被调用来自定义缓存管理器。

例如,这是一个非常基本的配置,可以更改过期策略:

代码语言:javascript
运行
复制
@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);
        };
    }

}
票数 0
EN

Stack Overflow用户

发布于 2015-11-17 08:17:01

JSR-107没有指定任何关于外部配置- xml,属性,您可以给它命名。

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

1:见Stéphane Nicoll的答复

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33705957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档