@Override public void registerAlias(String beanName, String alias) { this.beanFactory.registerAlias(beanName, alias); }
@Override public void registerAlias(String beanName, String alias) { this.beanFactory.registerAlias(beanName, alias); }
@Test public void testAliasCircle() { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerAlias("test", "test2"); lbf.registerAlias("test2", "test3"); try { lbf.registerAlias("test3", "test2"); fail("Should have thrown IllegalStateException"); } catch (IllegalStateException ex) { // expected } try { lbf.registerAlias("test3", "test"); fail("Should have thrown IllegalStateException"); } catch (IllegalStateException ex) { // expected } lbf.registerAlias("test", "test3"); }
@Test public void testBeanDefinitionOverridingWithAlias() { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("test", new RootBeanDefinition(TestBean.class)); lbf.registerAlias("test", "testAlias"); lbf.registerBeanDefinition("test", new RootBeanDefinition(NestedTestBean.class)); lbf.registerAlias("test", "testAlias"); assertTrue(lbf.getBean("test") instanceof NestedTestBean); assertTrue(lbf.getBean("testAlias") instanceof NestedTestBean); }
@Test public void testAliasChaining() { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("test", new RootBeanDefinition(NestedTestBean.class)); lbf.registerAlias("test", "testAlias"); lbf.registerAlias("testAlias", "testAlias2"); lbf.registerAlias("testAlias2", "testAlias3"); Object bean = lbf.getBean("test"); assertSame(bean, lbf.getBean("testAlias")); assertSame(bean, lbf.getBean("testAlias2")); assertSame(bean, lbf.getBean("testAlias3")); }
@Test public void testBeanDefinitionOverriding() { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("test", new RootBeanDefinition(TestBean.class)); lbf.registerBeanDefinition("test", new RootBeanDefinition(NestedTestBean.class)); lbf.registerAlias("otherTest", "test2"); lbf.registerAlias("test", "test2"); assertTrue(lbf.getBean("test") instanceof NestedTestBean); assertTrue(lbf.getBean("test2") instanceof NestedTestBean); }
@Test public void testPropertyPlaceholderConfigurerWithPlaceholderInAlias() { factory.registerBeanDefinition("tb", genericBeanDefinition(TestBean.class).getBeanDefinition()); factory.registerAlias("tb", "${alias}"); PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer(); Properties props = new Properties(); props.put("alias", "tb2"); ppc.setProperties(props); ppc.postProcessBeanFactory(factory); TestBean tb = (TestBean) factory.getBean("tb"); TestBean tb2 = (TestBean) factory.getBean("tb2"); assertSame(tb, tb2); }
@Test public void testPropertyPlaceholderConfigurerWithAliases() { factory.registerBeanDefinition("tb", genericBeanDefinition(TestBean.class) .addPropertyValue("touchy", "${test}").getBeanDefinition()); factory.registerAlias("tb", "${myAlias}"); factory.registerAlias("${myTarget}", "alias2"); PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer(); Properties props = new Properties(); props.put("test", "mytest"); props.put("myAlias", "alias"); props.put("myTarget", "tb"); ppc.setProperties(props); ppc.postProcessBeanFactory(factory); TestBean tb = (TestBean) factory.getBean("tb"); assertEquals("mytest", tb.getTouchy()); tb = (TestBean) factory.getBean("alias"); assertEquals("mytest", tb.getTouchy()); tb = (TestBean) factory.getBean("alias2"); assertEquals("mytest", tb.getTouchy()); }
@Test public void testPropertyPlaceholderConfigurerWithSelfReferencingPlaceholderInAlias() { factory.registerBeanDefinition("tb", genericBeanDefinition(TestBean.class).getBeanDefinition()); factory.registerAlias("tb", "${alias}"); PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer(); Properties props = new Properties(); props.put("alias", "tb"); ppc.setProperties(props); ppc.postProcessBeanFactory(factory); TestBean tb = (TestBean) factory.getBean("tb"); assertNotNull(tb); assertEquals(0, factory.getAliases("tb").length); }
@Test public void testBeanDefinitionRemoval() { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.setAllowBeanDefinitionOverriding(false); lbf.registerBeanDefinition("test", new RootBeanDefinition(TestBean.class)); lbf.registerAlias("test", "test2"); lbf.preInstantiateSingletons(); lbf.removeBeanDefinition("test"); lbf.removeAlias("test2"); lbf.registerBeanDefinition("test", new RootBeanDefinition(NestedTestBean.class)); lbf.registerAlias("test", "test2"); assertTrue(lbf.getBean("test") instanceof NestedTestBean); assertTrue(lbf.getBean("test2") instanceof NestedTestBean); }
bf.registerAlias("testService", "1");
@Test public void testCanReferenceParentBeanFromChildViaAlias() { final String EXPECTED_NAME = "Juergen"; final int EXPECTED_AGE = 41; RootBeanDefinition parentDefinition = new RootBeanDefinition(TestBean.class); parentDefinition.setAbstract(true); parentDefinition.getPropertyValues().add("name", EXPECTED_NAME); parentDefinition.getPropertyValues().add("age", EXPECTED_AGE); ChildBeanDefinition childDefinition = new ChildBeanDefinition("alias"); DefaultListableBeanFactory factory = new DefaultListableBeanFactory(); factory.registerBeanDefinition("parent", parentDefinition); factory.registerBeanDefinition("child", childDefinition); factory.registerAlias("parent", "alias"); TestBean child = (TestBean) factory.getBean("child"); assertEquals(EXPECTED_NAME, child.getName()); assertEquals(EXPECTED_AGE, child.getAge()); assertEquals("Use cached merged bean definition", factory.getMergedBeanDefinition("child"), factory.getMergedBeanDefinition("child")); }
bf.registerSingleton("value", "5"); bf.registerSingleton("xy", tb6); bf.registerAlias("xy", "testBean9");
NestedTestBean tb6 = new NestedTestBean(); bf.registerSingleton("xy", tb6); bf.registerAlias("xy", "testBean9");
assertTrue("prototype not instantiated", !DummyFactory.wasPrototypeCreated()); lbf.registerAlias("x1", "x2"); assertTrue(lbf.containsBean("x2")); assertTrue(lbf.containsBean("&x2"));
assertFalse(TestBeanFactory.initialized); lbf.registerAlias("x1", "x2"); assertTrue(lbf.containsBean("x2")); assertFalse(lbf.containsBean("&x2"));
@Override public void registerAlias(String beanName, String alias) { this.beanFactory.registerAlias(beanName, alias); }
@Override public void registerAlias(String name, String alias) { getBeanFactory().registerAlias(name, alias); }
private boolean reconfigureBean(DefaultListableBeanFactory beanFactory, Class<?> beanClass, String beanName) { Object serviceConnector = getCloud().getSingletonServiceConnector(beanClass, null); beanFactory.registerSingleton(getServiceBeanName(), serviceConnector); beanFactory.removeBeanDefinition(beanName); beanFactory.registerAlias(getServiceBeanName(), beanName); this.logger.fine(String.format("Reconfigured bean %s into singleton service connector %s", beanName, serviceConnector.toString())); return true; }
static void replaceBeanOfType(String className, DefaultListableBeanFactory beanFactory, Cloud cloud) { if (!ClassUtils.isPresent(className, null)) { return; } Class<?> klass = ClassUtils.resolveClassName(className, null); if (!hasSingleBean(beanFactory, klass) || !hasSingleCloudService(cloud, klass)) { return; } String beanName = getSingleBeanName(beanFactory, klass); String cloudServiceBeanName = getSingleCloudServiceName(cloud, klass); beanFactory.registerSingleton(cloudServiceBeanName, getSingleCloudService(cloud, klass)); beanFactory.removeBeanDefinition(beanName); beanFactory.registerAlias(cloudServiceBeanName, beanName); LOGGER.info(String.format("'%s' bean of type with '%s' reconfigured with '%s' bean", beanName, className, cloudServiceBeanName)); }