List of usage examples for org.springframework.beans.factory.support DefaultListableBeanFactory preInstantiateSingletons
@Override public void preInstantiateSingletons() throws BeansException
From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java
@Test public void testSmartInitFactory() { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("test", new RootBeanDefinition(EagerInitFactory.class)); lbf.preInstantiateSingletons(); EagerInitFactory factory = (EagerInitFactory) lbf.getBean("&test"); assertTrue(factory.initialized);/*from w ww.j av a 2 s.c o m*/ }
From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java
@Test public void testPrototypeFactoryBeanNotEagerlyCalledInCaseOfBeanClassName() { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("test", new RootBeanDefinition(FactoryBeanThatShouldntBeCalled.class.getName(), null, null)); lbf.preInstantiateSingletons(); }
From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java
@Test public void testBeanPostProcessorWithWrappedObjectAndDisposableBean() { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(BeanWithDisposableBean.class); lbf.registerBeanDefinition("test", bd); lbf.addBeanPostProcessor(new BeanPostProcessor() { @Override/*from ww w . j a va 2s.co m*/ public Object postProcessBeforeInitialization(Object bean, String beanName) { return new TestBean(); } @Override public Object postProcessAfterInitialization(Object bean, String beanName) { return bean; } }); BeanWithDisposableBean.closed = false; lbf.preInstantiateSingletons(); lbf.destroySingletons(); assertTrue("Destroy method invoked", BeanWithDisposableBean.closed); }
From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java
@Test public void testBeanPostProcessorWithWrappedObjectAndCloseable() { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(BeanWithCloseable.class); lbf.registerBeanDefinition("test", bd); lbf.addBeanPostProcessor(new BeanPostProcessor() { @Override//from w ww . j a v a2 s . c o m public Object postProcessBeforeInitialization(Object bean, String beanName) { return new TestBean(); } @Override public Object postProcessAfterInitialization(Object bean, String beanName) { return bean; } }); BeanWithDisposableBean.closed = false; lbf.preInstantiateSingletons(); lbf.destroySingletons(); assertTrue("Destroy method invoked", BeanWithCloseable.closed); }
From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java
@Test public void testBeanPostProcessorWithWrappedObjectAndDestroyMethod() { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(BeanWithDestroyMethod.class); bd.setDestroyMethodName("close"); lbf.registerBeanDefinition("test", bd); lbf.addBeanPostProcessor(new BeanPostProcessor() { @Override/* w w w.j a v a2s.co m*/ public Object postProcessBeforeInitialization(Object bean, String beanName) { return new TestBean(); } @Override public Object postProcessAfterInitialization(Object bean, String beanName) { return bean; } }); BeanWithDestroyMethod.closeCount = 0; lbf.preInstantiateSingletons(); lbf.destroySingletons(); assertEquals("Destroy methods invoked", 1, BeanWithDestroyMethod.closeCount); }
From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java
@Test public void testDestroyMethodOnInnerBean() { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition innerBd = new RootBeanDefinition(BeanWithDestroyMethod.class); innerBd.setDestroyMethodName("close"); RootBeanDefinition bd = new RootBeanDefinition(BeanWithDestroyMethod.class); bd.setDestroyMethodName("close"); bd.getPropertyValues().add("inner", innerBd); lbf.registerBeanDefinition("test", bd); BeanWithDestroyMethod.closeCount = 0; lbf.preInstantiateSingletons(); lbf.destroySingletons();//from ww w . j a v a 2 s.c o m assertEquals("Destroy methods invoked", 2, BeanWithDestroyMethod.closeCount); }
From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java
@Test public void testDestroyMethodOnInnerBeanAsPrototype() { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition innerBd = new RootBeanDefinition(BeanWithDestroyMethod.class); innerBd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); innerBd.setDestroyMethodName("close"); RootBeanDefinition bd = new RootBeanDefinition(BeanWithDestroyMethod.class); bd.setDestroyMethodName("close"); bd.getPropertyValues().add("inner", innerBd); lbf.registerBeanDefinition("test", bd); BeanWithDestroyMethod.closeCount = 0; lbf.preInstantiateSingletons(); lbf.destroySingletons();//from ww w .j ava2s .co m assertEquals("Destroy methods invoked", 1, BeanWithDestroyMethod.closeCount); }
From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java
private void doTestFieldSettingWithInstantiationAwarePostProcessor(final boolean skipPropertyPopulation) { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); int ageSetByPropertyValue = 27; bd.getPropertyValues().addPropertyValue(new PropertyValue("age", new Integer(ageSetByPropertyValue))); lbf.registerBeanDefinition("test", bd); final String nameSetOnField = "nameSetOnField"; lbf.addBeanPostProcessor(new InstantiationAwareBeanPostProcessorAdapter() { @Override/*w w w . j a v a 2s. c o m*/ public boolean postProcessAfterInstantiation(Object bean, String beanName) throws BeansException { TestBean tb = (TestBean) bean; try { Field f = TestBean.class.getDeclaredField("name"); f.setAccessible(true); f.set(tb, nameSetOnField); return !skipPropertyPopulation; } catch (Exception ex) { fail("Unexpected exception: " + ex); // Keep compiler happy about return throw new IllegalStateException(); } } }); lbf.preInstantiateSingletons(); TestBean tb = (TestBean) lbf.getBean("test"); assertEquals("Name was set on field by IAPP", nameSetOnField, tb.getName()); if (!skipPropertyPopulation) { assertEquals("Property value still set", ageSetByPropertyValue, tb.getAge()); } else { assertEquals("Property value was NOT set and still has default value", 0, tb.getAge()); } }
From source file:org.springframework.beans.factory.xml.XmlBeanFactoryTests.java
@Test public void testCollectionsReferredToAsRefLocals() throws Exception { DefaultListableBeanFactory factory = new DefaultListableBeanFactory(); new XmlBeanDefinitionReader(factory).loadBeanDefinitions(COLLECTIONS_XSD_CONTEXT); factory.preInstantiateSingletons(); }
From source file:org.springframework.beans.factory.xml.XmlBeanFactoryTests.java
@Test public void testAbstractParentBeans() { DefaultListableBeanFactory parent = new DefaultListableBeanFactory(); new XmlBeanDefinitionReader(parent).loadBeanDefinitions(PARENT_CONTEXT); parent.preInstantiateSingletons(); assertTrue(parent.isSingleton("inheritedTestBeanWithoutClass")); // abstract beans should not match Map<?, ?> tbs = parent.getBeansOfType(TestBean.class); assertEquals(2, tbs.size());// www.j a v a 2 s . c o m assertTrue(tbs.containsKey("inheritedTestBeanPrototype")); assertTrue(tbs.containsKey("inheritedTestBeanSingleton")); // abstract bean should throw exception on creation attempt try { parent.getBean("inheritedTestBeanWithoutClass"); fail("Should have thrown BeanIsAbstractException"); } catch (BeanIsAbstractException ex) { // expected } // non-abstract bean should work, even if it serves as parent assertTrue(parent.getBean("inheritedTestBeanPrototype") instanceof TestBean); }