En basit örneği ele alalım: bir uygulamanız var ve sadece varsayılan sınıf yükleyiciyi kullanıyorsunuz. Hangi nedenle olursa olsun, uygulamada birden fazla örneği olmamasına karar verdiğiniz bir sınıfınız var. (Birkaç kişinin uygulamanın parçaları üzerinde çalıştığı bir senaryo düşünün).
Spring çerçevesini kullanmıyorsanız, Singleton kalıbı, uygulamanızda bir sınıfın birden fazla örneğinin olmamasını sağlar. Bunun nedeni, yapıcı özel olduğu için 'yeni' yaparak sınıfın örneklerini başlatamazsınız. Sınıfın bir örneğini almanın tek yolu, her zaman aynı örneği döndüren sınıfın bazı statik yöntemlerini (genellikle 'getInstance' olarak adlandırılır) çağırmaktır.
Uygulamanızda Spring çerçevesini kullandığınızı söylemek, sınıfın bir örneğini elde etmenin normal yollarına (sınıfın bir örneğini döndüren yeni veya statik yöntemler) ek olarak, Spring'den sizi almasını isteyebileceğiniz anlamına gelir. Bu sınıfın bir örneği ve Spring, sınıfı Singleton desenini kullanarak yazmamış olsanız bile, ondan o sınıfın bir örneğini sorduğunuzda her zaman aynı örneği döndürmesini sağlayacaktır. Diğer bir deyişle, sınıfın genel kurucusu olsa bile, Spring'den her zaman o sınıfın bir örneğini sorarsanız, Spring bu kurucuyu başvurunuzun ömrü boyunca yalnızca bir kez arayacaktır.
Normalde Spring kullanıyorsanız, örnekler oluşturmak için yalnızca Spring'i kullanmalısınız ve sınıf için genel bir kurucunuz olabilir. Ancak kurucunuz özel değilse, Spring'i atlayarak kimsenin doğrudan sınıfın yeni örneklerini oluşturmasını gerçekten engellemiyorsunuzdur.
Sınıfın gerçekten tek bir örneğini istiyorsanız, uygulamanızda Spring'i kullansanız ve Spring'deki sınıfı bir singleton olarak tanımlasanız bile, bunu sağlamanın tek yolu, sınıfı Singleton modelini kullanarak uygulamaktır. Bu, insanlar bir örnek almak için Spring'i kullansın veya Spring'i baypas etsinler, tek bir örnek olmasını sağlar.