Concurrency problems may occur only in situations, when your code is not synchronized. It doesn't depend on using either Spring, or any other framework. Concurrency problem in your singleton may occur if there are possibility of race conditions or dirty reads. If you use your singleton for getting some unmodifiable data, there will not be any problems, unlike the situation, if your singleton has get/set methods which aren't synchronized - here are potential hazards. The bottom line: to prevent concurrency problems use synchronization. Spring has nothing to do there, it's just a container of your classes that you have designed and implemented.