spring + spring-modules-cache + oscache. that's how we do it.. no eager reading in "init" methods.
the data gets stored in the cache the first time it is read next read would just retrive the data from the cache there is a setting so that you can have the cache to be considered stale after a certain amount of time so you can have a list that is "no older than 1 hour" or "data as of 1:00 pm"

