此内容没有您所选择的语言版本。
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:
- Add
<cache:annotation-driven/>to the xml file. This line enables the standard spring annotations to be used by the application. - 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"/>
[...]
Programmatic Configuration
To enable Spring support programmatically perform the following steps:
- Add the
@EnableCachingannotation to the Spring configuration class in use. - Define a method returning a
SpringRemoteCacheManagerannotated 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));
}
[...]