我想让Spring ConverterSPI / Formatter和JsonHttpMessageConverter / XmlHttpMessageConverter中的序列化和反序列化行为保持一致。
因此,我尝试将Spring ConverterSPI中的所有转换器注册为JsonHttpMessageConverter / XmlHttpMessageConverter提供的全局配置。
那么如何获取所有在Spring中注册的转换器和格式化器?
我想按目标类型为String或Number类获取转换器和格式化程序的条件。
最严重的问题是某些基于字段注释的格式化程序,例如@NumberFormat。 例如,基于@NumberFormat的org.springframework.format.number.NumberFormatAnnotationFormatterFactory可以创建Formatter。
这也是spring有用的格式化程序,它不仅与类类型有关,而且与字段注释有关。 我需要获得有关格式化程序这部分的相关信息。
这可能吗?
答案 0 :(得分:1)
您可以通过界面对其进行自动接线:
@Autowired
private List<HttpMessageConverter> converters;
@Autowired
private List<Formatter> formatters;
答案 1 :(得分:0)
类似。
@SpringBootApplication
public class Application {
private static ApplicationContext applicationContext;
public static void main(String[] args) {
applicationContext = SpringApplication.run(Application.class, args);
applicationContext.getBeansOfType(XmlHttpMessageConverter.class);
applicationContext.getBeansOfType(Formatter.class);
}
}
显然,您需要对getBeansOfType的返回值做些事情。
我不确定您所说的“由fieldannotation注册”是什么意思,当您在spring中查询它所拥有的bean时应该没关系。