Разница между весенними синглтонскими бобами и синглтонскими узорами заключается в том, что они связаны с различными средами. Одиночные шаблоны относятся только к одному экземпляру в процессе JVM, в то время как Spring Singleton относится только к одному экземпляру в контейнере Spring Bean (ApplicationContext).
Во -первых, посмотрите на синглтон. В процессе JVM (теоретически, работающая программа Java должна иметь свой собственный независимый JVM). Существует только один экземпляр, поэтому независимо от того, где экземпляр получен в программе, всегда возвращается тот же объект. Принимая встроенное время выполнения в Java в качестве примера (перечисление теперь является лучшей практикой синглтонского рисунка), независимо от того, где время и где оно получено, всегда верно следующее суждение:
// На основании ленивого режима // В всегда есть только один экземпляр jvm экземпляра.
Напротив, Spring's Singleton Beans тесно связаны с их контейнерами (ApplicationContext). Следовательно, в процессе JVM, если есть несколько пружинных контейнеров, даже синглтонский боб определенно создаст несколько экземпляров. Пример кода заключается в следующем:
// первый контейнер с пружинными бонами приложение Context_1 = new FileSystemxmlapplicationContext ("classPath: /applicationContext.xml"); Person yiifaa_1 = context_1.getbean ("yiifaa", person.class); // Второй контейнер -контейнер пружины contectext_2 = new FileSystemxmlapplicationContext ("classPath: /applicationContext.xml"); Человек yiifaa_2 = context_2.getbean ("yiifaa", person.class); // Это определенно не равно, потому что несколько экземпляров созданы System.out.println (yiifaa_1 == yiifaa_2);Вот файл конфигурации пружины:
<!-Даже если он объявлен как синглтон, будут созданы несколько случаев, если есть несколько контейнеров-> <bean id = "yiifaa" scope = "singleton"> <constructor- name = "username"> <value> yiifaa </value> </contructor-arg> </benam
Суммировать
Spring's Singleton Beans тесно связаны с контейнерами управления весенними фасолями. Каждый контейнер создаст свой собственный уникальный экземпляр, поэтому он сильно отличается от шаблона Singleton в рисунке GOF. Однако в реальных приложениях, если жизненный цикл объекта полностью передается управлению пружиной (не создается новым, отражением и т. Д. В другом месте), эффект синглтонского рисунка может быть фактически достигнут.
Выше приведено все об этой статье, в которой обсуждается разница между Spring Singleton Bean и Singleton Model. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!