Mari kita ambil contoh paling sederhana: Anda memiliki aplikasi dan Anda cukup menggunakan classloader default. Anda memiliki kelas yang, untuk alasan apa pun, Anda memutuskan bahwa kelas itu tidak boleh memiliki lebih dari satu contoh dalam aplikasi. (Pikirkan skenario di mana beberapa orang mengerjakan bagian aplikasi).
Jika Anda tidak menggunakan framework Spring, pola Singleton memastikan bahwa tidak akan ada lebih dari satu instance kelas dalam aplikasi Anda. Itu karena Anda tidak dapat membuat instance kelas dengan melakukan 'baru' karena konstruktornya bersifat pribadi. Satu-satunya cara untuk mendapatkan instance kelas adalah dengan memanggil beberapa metode statis kelas (biasanya disebut 'getInstance') yang selalu mengembalikan instance yang sama.
Mengatakan bahwa Anda menggunakan kerangka kerja Spring dalam aplikasi Anda, berarti selain cara biasa untuk mendapatkan instance kelas (metode baru atau statis yang mengembalikan instance kelas), Anda juga dapat meminta Spring untuk mendapatkan Anda sebuah instance dari kelas itu dan Spring akan memastikan bahwa setiap kali Anda memintanya untuk sebuah instance dari kelas itu, ia akan selalu mengembalikan instance yang sama, bahkan jika Anda tidak menulis kelas tersebut menggunakan pola Singleton. Dengan kata lain, meskipun kelas tersebut memiliki konstruktor publik, jika Anda selalu meminta Spring untuk instance kelas itu, Spring hanya akan memanggil konstruktor itu sekali selama masa pakai aplikasi Anda.
Biasanya jika Anda menggunakan Spring, Anda hanya boleh menggunakan Spring untuk membuat instance, dan Anda dapat memiliki konstruktor publik untuk kelas tersebut. Tetapi jika konstruktor Anda tidak bersifat pribadi, Anda tidak benar-benar mencegah siapa pun membuat instance baru dari kelas secara langsung, dengan melewati Spring.
Jika Anda benar-benar menginginkan satu instance kelas, bahkan jika Anda menggunakan Spring dalam aplikasi Anda dan menentukan kelas di Spring menjadi tunggal, satu-satunya cara untuk memastikan bahwa adalah juga mengimplementasikan kelas menggunakan pola Singleton. Itu memastikan bahwa akan ada satu instance, apakah orang menggunakan Spring untuk mendapatkan instance atau melewati Spring.