美文网首页我爱编程
spring笔记-StaticListableBeanFacto

spring笔记-StaticListableBeanFacto

作者: 兴浩 | 来源:发表于2018-06-11 12:58 被阅读35次

    StaticListableBeanFactory实现了BeanFactory和ListableBeanFactory
    跟DefaultListableBeanFactory相比,可以认为是简化版的BeanFactory,由于未实现BeanDefinitionRegistry,所以并不支持BeanDefinition的注册操作

        @Test
        public void testFindsBeansOfTypeWithStaticFactory() {
            StaticListableBeanFactory lbf = new StaticListableBeanFactory();
            TestBean t1 = new TestBean();
            TestBean t2 = new TestBean();
            DummyFactory t3 = new DummyFactory();
            DummyFactory t4 = new DummyFactory();
            t4.setSingleton(false);
            lbf.addBean("t1", t1);
            lbf.addBean("t2", t2);
            lbf.addBean("t3", t3);
            lbf.addBean("t4", t4);
    
            Map<String, ?> beans = BeanFactoryUtils.beansOfTypeIncludingAncestors(lbf, ITestBean.class, true, true);
            assertEquals(4, beans.size());
            assertEquals(t1, beans.get("t1"));
            assertEquals(t2, beans.get("t2"));
            assertEquals(t3.getObject(), beans.get("t3"));
            assertTrue(beans.get("t4") instanceof TestBean);
    
            beans = BeanFactoryUtils.beansOfTypeIncludingAncestors(lbf, DummyFactory.class, true, true);
            assertEquals(2, beans.size());
            assertEquals(t3, beans.get("&t3"));
            assertEquals(t4, beans.get("&t4"));
    
            beans = BeanFactoryUtils.beansOfTypeIncludingAncestors(lbf, FactoryBean.class, true, true);
            assertEquals(2, beans.size());
            assertEquals(t3, beans.get("&t3"));
            assertEquals(t4, beans.get("&t4"));
        }
    

    参考:
    https://www.jianshu.com/p/4b9d7455c8b2

    相关文章

      网友评论

        本文标题:spring笔记-StaticListableBeanFacto

        本文链接:https://www.haomeiwen.com/subject/cbnceftx.html