mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2026-01-12 13:01:10 +00:00
Upgrade to Ehcache 3
I saw on twitter the reference of an article (in french): http://javaetmoi.com/2016/08/migrer-vers-spring-boot/ That article concludes with something along the lines of "Besides the EhCache and Maven configuration, Petclinic does not hold a single line of XML anymore". Looking at the code, we can remove more XML if you want. This PR migrates the cache infrastructure to EhCache 3 and JCache (JSR-107). This also reduces the number of dependencies.
This commit is contained in:
parent
864580702f
commit
a41b83a2fd
4 changed files with 35 additions and 459 deletions
|
|
@ -1,6 +1,19 @@
|
|||
package org.springframework.samples.petclinic.config;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import javax.cache.CacheManager;
|
||||
|
||||
import org.ehcache.config.CacheConfiguration;
|
||||
import org.ehcache.config.builders.CacheConfigurationBuilder;
|
||||
import org.ehcache.config.builders.ResourcePoolsBuilder;
|
||||
import org.ehcache.config.units.EntryUnit;
|
||||
import org.ehcache.expiry.Duration;
|
||||
import org.ehcache.expiry.Expirations;
|
||||
import org.ehcache.jsr107.Eh107Configuration;
|
||||
|
||||
import org.springframework.boot.autoconfigure.cache.JCacheManagerCustomizer;
|
||||
import org.springframework.cache.annotation.EnableCaching;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Profile;
|
||||
|
||||
|
|
@ -11,4 +24,21 @@ import org.springframework.context.annotation.Profile;
|
|||
@EnableCaching
|
||||
@Profile("production")
|
||||
public class CacheConfig {
|
||||
|
||||
@Bean
|
||||
public JCacheManagerCustomizer cacheManagerCustomizer() {
|
||||
return new JCacheManagerCustomizer() {
|
||||
@Override
|
||||
public void customize(CacheManager cacheManager) {
|
||||
CacheConfiguration<Object, Object> config = CacheConfigurationBuilder
|
||||
.newCacheConfigurationBuilder(Object.class, Object.class,
|
||||
ResourcePoolsBuilder.newResourcePoolsBuilder()
|
||||
.heap(100, EntryUnit.ENTRIES))
|
||||
.withExpiry(Expirations.timeToLiveExpiration(Duration.of(60, TimeUnit.SECONDS)))
|
||||
.build();
|
||||
cacheManager.createCache("vets", Eh107Configuration.fromEhcacheCacheConfiguration(config));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue