14.3. Enabling Spring Cache Support (Remote Client-Server Mode)


Spring's cache support can be enabled, for both Spring3 and Spring4, either through the xml file or programmatically in the application.
Declarative Configuration

To enable Spring support declaratively perform the following steps:

  1. Add <cache:annotation-driven/> to the xml file. This line enables the standard spring annotations to be used by the application.
  2. Define the HotRod client properties using the <infinispan:remote-cache-manager ... />.
The following example demonstrates these changes:

Example 14.6. Sample Declarative Configuration

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:infinispan="http://www.infinispan.org/schemas/spring"
       xmlns:cache="http://www.springframework.org/schema/cache"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd
       http://www.infinispan.org/schemas/spring http://www.infinispan.org/schemas/infinispan-spring.xsd">
[...]
<cache:annotation-driven/>

<infinispan:remote-cache-manager
            configuration="classpath:/path/to/hotrod-client.properties"/>
[...]
Copy to Clipboard Toggle word wrap
Programmatic Configuration

To enable Spring support programmatically perform the following steps:

  1. Add the @EnableCaching annotation to the Spring configuration class in use.
  2. Define a method returning a SpringRemoteCacheManager annotated with @Bean.
The following code snippet highlights these changes:

Example 14.7. Sample Programmatic Configuration

import org.infinispan.client.hotrod.RemoteCacheManager;
import org.infinispan.client.hotrod.configuration.Configuration;
import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
import org.infinispan.spring.provider.SpringRemoteCacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
[...]

@org.springframework.context.annotation.Configuration
@EnableCaching
public class Config {

[...]

    @Bean
    public SpringRemoteCacheManager cacheManager() throws Exception {
        Configuration config = new ConfigurationBuilder()
            .addServer()
            .host(ADDRESS)
            .port(PORT)
            .build();

        return SpringRemoteCacheManager(new RemoteCacheManager(config));
    }
[...]
Copy to Clipboard Toggle word wrap
Back to top
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2025 Red Hat