Chapter 37. Integration with the Spring Framework

37.1. Integration with the Spring Framework

JBoss Data Grid allows users to define a Spring Cache provider, providing applications a method of easily adding caching support, and allowing users familiar with Spring’s programming model a way to have caching fulfilled by JBoss Data Grid.

The following steps and examples demonstrate methods that Administrators can use to configure JBoss Data Grid nodes for Spring support. Additional information, including how to include Spring annotations inside applications, can be found in the JBoss Data Grid Developer Guide .

37.2. Enabling Spring Cache Support Declaratively (Library Mode)

Spring’s cache support can be enabled through the xml file by performing 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 a cache manager using the <infinispan:embedded-cache-manager …​ />.

The following example demonstrates these changes:

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:embedded-cache-manager
            configuration="classpath:/path/to/cache-config.xml"/>
[...]

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

Spring’s cache support can be enabled declaratively by performing 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:

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"/>
[...]