返回指定类型和子类型的所有bean:
BeanFactoryUtils.beansOfTypeIncludingAncestors
返回指定类型和子类型的所有bean,若该bean factory 是一个继承类型的beanFactory,这个方法也会获取祖宗factory中定义的指定类型的bean。
BeanFactoryUtils.beansOfTypeIncludingAncestors(this.getApplicationContext(), ServiceInitializer.class, true, false);
class AbstractGatewayInvokeHandler implements ApplicationContextAware{
private ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
@PostConstruct
private void init() {
initFilterChain();
}
private void initFilterChain() {
Map filterBeans = BeanFactoryUtils
.beansOfTypeIncludingAncestors(applicationContext, GatewayHandlerFilter.class);
ArrayList filters = new ArrayList<>(filterBeans.values());
AnnotationAwareOrderComparator.sort(filters);
this.filterChain = new GatewayFilterChain(this, filters);
}
}