Reputation: 33
I want to load the data from database into cache memory using Spring ehCache when the application starts i.e when the server starts before any other method is called. I dont want to use a constructor. Please help me.
Upvotes: 3
Views: 9148
Reputation: 12481
As @LouisJacomet mentioned you need to implement BootstrapCacheLoader, this implementation is what will do your preloading. Since you are using Spring you will create a bean of the implemented class and call EhCacheFactoryBean.setBootstrapCacheLoader so that the cache factory is aware of the loader.
Here is a link with a complete implementation. https://javaglobin.wordpress.com/2013/11/13/declarative-caching-with-spring/
Have a look at MyBootstrapCacheLoaderFactory and also note that there is a EhCacheFactoryBean bean that is called ehCacheFactory.
Upvotes: 3
Reputation: 14500
This is exactly what the BootstrapCacheLoader
will do for you.
Have a look at the following documentation entry.
It seems this is fully integrated in the Spring Ehcache bridge - see here
In short the steps to get there are:
BootstrapCacheLoader
that will use the set to load eagerly all entries, async or sync at cache initialisation time.BootstrapCacheLoaderFactory
through XML (Ehcache) or even directly (Spring)Upvotes: 4