2015-08-03 15 views
5

İlk olarak, bir fasulyenin özellikle bahar bağlamında tanımlanmış olup olmadığını kontrol edecek bir nesne fabrikası oluşturmaya çalışıyorum. Böyle bir fasulye bulunmazsa, örneği oluşturmanın diğer yollarını kontrol eder.Bir fasulyenin bahar bağlamında tanımlanmış olup olmadığını kontrol etmenin bir yolu var mı?

Ben O fasulye Bahar Bağlamında kullanılamaz olduğunda ancak bir istisna nesnesi oluşturulduğunda, çalışıyor

try { 
     component = (PageComponent) appContext.getBean(w.getName()); 
    } catch (org.springframework.beans.factory.NoSuchBeanDefinitionException e) { 
      component = loadFromDB(w, page); 
    } 

Aşağıdaki kodu kullanarak uygulamıştır.

Bundan kaçınmanın bir yolu var mı? ya da başka bir deyişle, bir fasulyenin bahar bağlamında tanımlanmış olup olmadığını kontrol etmenin bir yolu var mı?

cevap

8

bu deneyin:

if(appContext.containsBeanDefinition(w.getName())) 
    ; // Get the bean 
+1

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/beans/factory/support/AbstractBeanFactory.html#containsBeanDefinition- java.lang.String- –

+0

XML'de aynı doğrulamanın bir yolu var mı? – Sridhar

0

beanFactory.containsBean(w.getName()) zaten bu isimle tescil bir fasulye varsa bağlı bir boolean değerini döndürür. here'a bir göz atın.

böyle

Do şey

if (!((BeanFactory) applicationContext).containsBean(w.getName())) { 
    component = loadFromDB(w, page); 
} 
İlgili konular