Spring 多层级 BeanFactory

222 阅读1分钟
// 父BeanFactory
DefaultListableBeanFactory parentBeanFactory = new DefaultListableBeanFactory();
parentBeanFactory.registerSingleton("user1", new User("user1"));
// 子BeanFactory,将父亲注册到子中
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory(parentBeanFactory);
beanFactory.registerSingleton("user2", new User("user2"));

// 依赖查找
// 结果:{user2=User{name='user2'}, user1=User{name='user1'}}
System.out.println(BeanFactoryUtils.beansOfTypeIncludingAncestors(beanFactory, User.class));
// 结果{user1=User{name='user1'}}
System.out.println(BeanFactoryUtils.beansOfTypeIncludingAncestors(parentBeanFactory, User.class));