0

我有以下配置使用

org.infinispan', name: 'infinispan-spring4-common', version: '9.1.7.Final'

问题是如何以编程方式创建缓存?或者如何在 infinispan 服务器启动期间创建缓存?

我无法创建标签“infinispan-as-spring-cache-provider”有人可以帮我吗?

@Configuration
@Profile("infinispan-standalone")
@EnableCaching
public class InfinispanStandaloneConfig {

    private static final Logger logger = LoggerFactory.getLogger(InfinispanCacheConfiguration.class);

    @Autowired
    @Bean
    public RemoteCacheManager remoteCacheManager(@Value("${infinispan.remote.server-list}") String serverlist,
                                                 @Value("infinispan.admin.user") String user,
                                                 @Value("infinispan.admin.password") String pwd) {
        logger.info("inside the remote cache manager");

        Properties properties = new Properties();
        properties.setProperty("infinispan.client.hotrod.client_intelligence", "BASIC");
        properties.setProperty("infinispan.client.hotrod.marshaller", "org.infinispan.commons.marshall.jboss.GenericJBossMarshaller");

        RemoteCacheManager remoteCacheManager = new RemoteCacheManager(new ConfigurationBuilder().addServers(serverlist).withProperties(properties)
                .security().authentication().username(user).password(pwd)
                .build());
        remoteCacheManager.getCache("cart",true);
        return remoteCacheManager;
    }

    @Bean
    public SpringRemoteCacheManager cacheManager(RemoteCacheManager remoteCacheManager) {
        return new SpringRemoteCacheManager(remoteCacheManager);
    }
}
4

1 回答 1

1

您将需要使用 Infinispan 9.2,您可以在其中使用以下内容:

remoteCacheManager.administration().getOrCreateCache("cart", "template-name");

提供的“模板名称”是在服务器上定义的配置模板。或者,您也可以为缓存传递 XML 配置:

String xml = "<infinispan><cache-container><distributed-cache name="cart"><expiration interval="10000" lifespan="10" max-idle="10"/></distributed-cache></cache-container></infinispan>"; remoteCacheManager.administration().getOrCreateCache("cart", new XMLConfiguration(xml));

于 2018-05-18T12:04:51.780 回答