spring笔记-StaticListableBeanFactory

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容