为了账号安全,请及时绑定邮箱和手机立即绑定

麻烦说一下方法参数的意思,以及返回的map中储存的是什么!谢谢!

麻烦说一下方法参数的意思,以及返回的map中储存的是什么!谢谢!

慕容708150 2023-03-12 20:16:28
BeanFactoryUtils这个类中的方法public static Map beansOfTypeIncludingAncestors(ListableBeanFactory lbf,Class type, boolean includeNonSingletons, boolean allowEagerInit) throwsBeansException
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

spring 容器会在启动的时候为DispatcherServlet初始化handlerMapping.
// Find all HandlerMappings in the ApplicationContext,
// including ancestor contexts.
Map matchingBeans = BeanFactoryUtils.beansOfTypeIncludingAncestors(
context, HandlerMapping.class, true, false);
即找到在context里声明的,所有HandlerMapping和其子类的bean. 可以有多个,这些handlerMapping里有顺序声明,可以根据它来排序。

public static Map beansOfTypeIncludingAncestors(ListableBeanFactory lbf, Class type)
throws BeansException {

Assert.notNull(lbf, "ListableBeanFactory must not be null");
Map result = new LinkedHashMap(4);
result.putAll(lbf.getBeansOfType(type));
if (lbf instanceof HierarchicalBeanFactory) {
HierarchicalBeanFactory hbf = (HierarchicalBeanFactory) lbf;
if (hbf.getParentBeanFactory() instanceof ListableBeanFactory) {
Map parentResult = beansOfTypeIncludingAncestors(
(ListableBeanFactory) hbf.getParentBeanFactory(), type);
for (Iterator it = parentResult.entrySet().iterator(); it.hasNext();) {
Map.Entry entry = (Map.Entry) it.next();
String beanName = (String) entry.getKey();
if (!result.containsKey(beanName) && !hbf.containsLocalBean(beanName)) {
result.put(beanName, entry.getValue());
}
}
}
}
return result;
}
参考当中的源码


 


查看完整回答
反对 回复 2023-03-15
  • 1 回答
  • 0 关注
  • 64 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信