Accessing messages.properties on the client-side

Spring controllers are beans, so a new one is instantiated on a context refresh. I don’t know if the classes are reloaded though, so it’s possible that static variables have their values preserved.

I would recommend that you generate the etag as a hash of all the message content. (Because as you have it now, a server restart (and maybe a module refresh) will require clients to redownload the whole thing. It would be preferable to only have to download 1.5MB if something changes.