title: Does Spring publish beans in thread-safe manner?
body: <p>My knowledge about JVM internals is that if references are not published correctly, there is a chance that different threads will see different values of the same fields.</p>
  
  <p>My question is: <strong>Does Spring beans container guarantee safe publication?</strong> If not, should I make all my bean getters and setters <code>synchronized</code> or use <code>volatile</code>? Or maybe use <code>final</code> fields and constructor initialization?</p>
  
  <p>I assume that this may only be an issue for singleton beans as prototype beans are created on demand from requesting thread. Is my understanding correct?</p>