14.2. Enabling Spring Cache Support (Library Mode)
14.2. Enabling Spring Cache Support (Library 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 a cache manager using the <infinispan:embedded-cache-manager ... /> . The following example demonstrates these changes: Example 14.4. Sample Declarative Configuration Programmatic Configuration To enable Spring support programmatically perform the following steps: Add the @EnableCaching annotation to the Spring configuration class in use. Define a method returning a SpringEmbeddedCacheManager annotated with @Bean . The following code snippet highlights these changes: Example 14.5. Sample Programmatic Configuration Report a bug
<?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"/> [...] import org.infinispan.configuration.cache.Configuration; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.eviction.EvictionStrategy; import org.infinispan.manager.DefaultCacheManager; import org.infinispan.spring.provider.SpringEmbeddedCacheManager; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; [...] @org.springframework.context.annotation.Configuration @EnableCaching public class Config { [...] @Bean public SpringEmbeddedCacheManager cacheManager() throws Exception { Configuration config = new ConfigurationBuilder() .eviction() .strategy(EvictionStrategy.LRU) .maxEntries(150) .build(); return SpringEmbeddedCacheManager(new DefaultCacheManager(config)); } [...]