Spring Boot实战:从0开始动手搭建企业级项目
上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类型)参数的类型转换都已经被正确执行。读者可以在本地自行测试几次。

以上是简单的类型转换。如果业务需要的话,也可以进行自定义类型转换器并添加到项目中。