0
点赞
收藏
分享

微信扫一扫

2.2.4版本Spring Boot参数转换器自动注册机制的一个源码疑问

m逆光生长 2022-07-12 阅读 60


  • Spring Boot在初始化的过程中会把Converter,Formatter和GenericConverter类型的Bean注册到ConverterService对象中。以前的代码是在WebMvcAutoConfigurationAdapter中,但是现在已经转换到ApplicationConversionService中,而且具体的逻辑已经把Formatter类型的Bean给排除了,但是服务类还在获取他,有点绕
  • 我的问题是,我是找错源码了,还是已经改掉了

(FormatterRegistry registry, ListableBeanFactory beanFactory) {
Set<Object> beans = new LinkedHashSet();
beans.addAll(beanFactory.getBeansOfType(GenericConverter.class).values());
beans.addAll(beanFactory.getBeansOfType(Converter.class).values());
beans.addAll(beanFactory.getBeansOfType(Printer.class).values());
beans.addAll(beanFactory.getBeansOfType(Parser.class).values());
Iterator var3 = beans.iterator();

while(var3.hasNext()) {
Object bean = var3.next();
if (bean instanceof GenericConverter) {
registry.addConverter((GenericConverter)bean);
} else if (bean instanceof Converter) {
registry.addConverter((Converter)bean);
} else if (bean instanceof Formatter) {
registry.addFormatter((Formatter)bean);
} else if (bean instanceof Printer) {
registry.addPrinter((Printer)bean);
} else if (bean instanceof Parser) {
registry.addParser((Parser)bean);
}
}


举报

相关推荐

0 条评论