BeanFactory
numaralı telefondan getBean(name)
numaralı telefonu aradığımda, uygulama bağlamında tanımlı bir fasulye örneğini geri alıyorum. Bununla birlikte, getBean(name)
'u tekrar çağırdığımda (aynı adla), fasülyenin aynı örneğini alıyorum. Bazı (birçok?) Durumda bu durumun nasıl isteneceğini anlıyorum ama BeanFactory
bana yeni bir örnek vermesini nasıl söyleyebilirim?Bir yay kabını tek bir fasulye örneğini döndürmemeye nasıl zorlarım?
Örnek Bahar yapılandırma (tersely ... Bir ayrıntı dışarı bıraktım ama bu noktaya erişebilmek olmalı): Ben bu çalıştırdığınızda
for(int i = 0;i++;i<=1) {
ApplicationContext context = ClassPathXmlApplicationContext("context.xml");
Object o = context.getBean("beanA");
System.out.println(o.toString()); // Note: misc.BeanA does not implement
// toString(), so this will display the OOID
// so that we can tell if it's the same
// instance
}
:
<beans>
<bean id="beanA" class="misc.BeanClass"/>
</beans>
Örnek Java Ben böyle bir şey olsun: her ikisi de aynı Ooid sahip olduğunu
[email protected]
[email protected]
Not ... bu yüzden bu aynı örnekleri vardır ... ama farklı örnekler istedi.
Bunu yaptı. İki şey beni raydan çıkardı: 1. Başlangıçta, konfigürasyondaki bir özellik yerine getBean (String) için bir argüman arıyordum ... 2. İlkbahar 1.x'de (önceki bahar deneyimim) öznitelik çağrıldı. singleton ', ama görünüşe göre 2.5 değil. – Jared
Evet, isteği, oturumu ve genel oturumu karşılamak için Spring 2.x'te "kapsam" olarak değiştirdiler. – duffymo
Java sınıfı ('@ Yapılandırma ') üzerinden konfigürasyon yapıyorsanız, fasulye tanımlama yönteminde @Scope (" prototip ")' i kullanabilirsiniz. –