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
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)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.