Perbedaan antara kacang singleton musim semi dan pola singleton adalah bahwa mereka dikaitkan dengan lingkungan yang berbeda. Pola singleton hanya merujuk pada satu contoh dalam proses JVM, sementara musim semi singleton hanya mengacu pada satu contoh dalam wadah kacang musim semi (ApplicationContext).
Pertama, lihatlah pola singleton. Dalam proses JVM (secara teoritis, program Java yang sedang berjalan harus memiliki JVM independen sendiri) hanya ada satu contoh, jadi di mana pun instance diperoleh dalam program, objek yang sama selalu dikembalikan. Mengambil runtime bawaan di Java sebagai contoh (enumerasi sekarang menjadi praktik terbaik dari pola singleton), di mana pun waktu dan di mana ia diperoleh, penilaian berikut selalu benar:
// Berdasarkan Mode Lazy // Selalu hanya ada satu contoh dalam instance JVM Runtime.getRuntime () == runtime.getRuntime ()
Sebaliknya, kacang singleton Spring terkait erat dengan wadahnya (ApplicationContext). Oleh karena itu, dalam proses JVM, jika ada beberapa wadah musim semi, bahkan kacang tunggal pasti akan membuat banyak contoh. Contoh kode adalah sebagai berikut:
// Application Container Spring Bean Context Context_1 = NEWNYSYSTEMXMLApplicationContext ("ClassPath: /AppLicationContext.xml"); Orang yiifaa_1 = context_1.getbean ("yiifaa", person.class); // Aplikasi Kontainer Kantang Pegas Kedua Context_2 = FileSystemxMlappLicationContext baru ("classpath: /ApplicationContext.xml"); Orang yiifaa_2 = context_2.getbean ("yiifaa", person.class); // Ini jelas tidak sama, karena banyak contoh dibuat system.out.println (yiifaa_1 == yiifaa_2);Berikut adalah file konfigurasi pegas:
<!-Bahkan jika itu dinyatakan sebagai singleton, beberapa contoh akan dibuat selama ada beberapa kontainer-> <bean id = "yiifaa" scope = "singleton"> <constructor- arg name = "nama pengguna"> <value> yiifaa </forth> </constructor-Arg> </bean>
Meringkaskan
Kacang singleton musim semi terkait erat dengan wadah manajemen kacang musim semi. Setiap wadah akan membuat contoh uniknya sendiri, sehingga sangat berbeda dari pola singleton dalam pola desain GOF. Namun, dalam aplikasi aktual, jika siklus hidup objek sepenuhnya diserahkan kepada manajemen musim semi (tidak dibuat oleh baru, refleksi, dll di tempat lain), efek dari pola singleton sebenarnya dapat dicapai.
Di atas adalah semua tentang artikel ini yang membahas perbedaan antara model Spring Singleton Bean dan Singleton. Saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!