HierarchicalBeanFactory

深碍√TFBOYSˉ_ 2023-08-17 16:04 143阅读 0赞

BeanFactory分层

  1. package org.springframework.beans.factory;
  2. //分层工厂
  3. public interface HierarchicalBeanFactory extends BeanFactory {
  4. //返回工厂的父工厂
  5. BeanFactory getParentBeanFactory();
  6. //这个工厂中是否包含这个Bean
  7. boolean containsLocalBean(String name);
  8. }

测试代码

  1. @Test
  2. public void testAutowireWithParent() throws Exception {
  3. DefaultListableBeanFactory xbf = new DefaultListableBeanFactory();
  4. new XmlBeanDefinitionReader(xbf).loadBeanDefinitions(AUTOWIRE_CONTEXT);
  5. DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
  6. MutablePropertyValues pvs = new MutablePropertyValues();
  7. pvs.add("name", "kerry");
  8. RootBeanDefinition bd = new RootBeanDefinition(TestBean.class);
  9. bd.setPropertyValues(pvs);
  10. lbf.registerBeanDefinition("spouse", bd);
  11. xbf.setParentBeanFactory(lbf);
  12. doTestAutowire(xbf);
  13. }
  14. private void doTestAutowire(DefaultListableBeanFactory xbf) throws Exception {
  15. DependenciesBean rod1 = (DependenciesBean) xbf.getBean("rod1");
  16. TestBean kerry = (TestBean) xbf.getBean("spouse");
  17. // should have been autowired
  18. assertEquals(kerry, rod1.getSpouse());
  19. }

调用了setParentBeanFactory设置BeanFactory,lbf中注册了spouse,所以在调用getBean时可以获取到spouse

发表评论

表情:
评论列表 (有 0 条评论,143人围观)

还没有评论,来说两句吧...

相关阅读