上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
7.4 自动注册Converter、Formatter
在WebMvcAutoConfigurationAdapter内部类中,含有addFormatters()方法,该方法会向FormatterRegistry添加在IOC容器中所拥有的Converter、GenericConverter、Formatter类型的Bean。
addFormatters()方法的源码如下所示:
实际调用的逻辑代码为ApplicationConversionService类的addBeans()方法,该方法源码如下所示:
为了方便读者理解,这里简单举一个案例。
在Controller包中新建TestController类并新增typeConversionTest()方法,参数分别如下所示。
goodsName:参数类型为String。
weight:参数类型为float。
type:参数类型为int。
onSale:参数类型为Boolean。
typeConversionTest()方法的代码如下所示:
在编码完成后重启Spring Boot项目,项目启动成功后在浏览器中输入地址进行请求,查看控制台的打印结果。
第一次请求:
打印结果如下:
第二次请求:
打印结果如下:
其实这就是Spring MVC中的类型转换,HTTP请求传递的数据都是字符串String类型的。这个方法在Controller中被定义。该方法确保对应的地址接收到浏览器的请求,并且请求中goodsName(String类型)、weight(float类型)、type(int类型)、onSale(Boolean类型)参数的类型转换都已经被正确执行。读者可以在本地自行测试几次。
以上是简单的类型转换。如果业务需要的话,也可以进行自定义类型转换器并添加到项目中。