I have the below config
@Configuration
@EnableCaching(proxyTargetClass = true)
public class CachingConfig {
@Bean
@ConditionalOnMissingBean
public javax.cache.CacheManager cacheManager() {
javax.cache.spi.CachingProvider cachingProvider = javax.cache.Caching.getCachingProvider();
javax.cache.CacheManager cacheManager = cachingProvider.getCacheManager();
CacheConfiguration<String, SpecialityEntity> specialityCachecConfig = CacheConfigurationBuilder
.newCacheConfigurationBuilder(String.class, SpecialityEntity.class, ResourcePoolsBuilder.newResourcePoolsBuilder().offheap(10, MemoryUnit.MB).build())
.withExpiry(ExpiryPolicyBuilder.timeToIdleExpiration(Duration.ofSeconds(10)))
.build();
javax.cache.configuration.Configuration<String, SpecialityEntity> specialityConfiguration = Eh107Configuration.fromEhcacheCacheConfiguration(specialityCachecConfig);
cacheManager.createCache("specialityCache", specialityConfiguration);
return cacheManager;
}
}
dependencies:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
<dependency>
<groupId>javax.cache</groupId>
<artifactId>cache-api</artifactId>
</dependency>
when i tried to put a object in the cache like below, i have an error NullPointerException
public void on(SpecialityCreated event) {
final SpecialityEntity speciality = mapper.specialityCreatedToSpecialityEntity(event);
repository.save(speciality);
Cache<Object, Object> cache = cacheManager.getCache("specialityCache");
cache.put(event.getSpecialityId(), speciality); //cache is null
}