- 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);
}
}