天天看点

springMVC4(11)使用注解完成数据格式化需求实例引入AnnotationFormatterFactory接口FormattingConversionService

在实际开发中,我们会常常遇到需要对日期格式、数值格式进行转换的需求。在spring中,我们可以轻松通过注解的方式完成对数据的格式化处理,比如现在有个user pojo类:

package com.mvc.model;

我们希望通过上面两个注解,将birthdat如1995-01-01的字符串形式与java.util.date的日期形式相互转换,将salary如15.000k的字符串形式与long型的15000相互转换。

为了完成我们的需求,我们需要先了解如下知识。

它使我们的注解与属性类型关联起来。它的定义如下:

继承自conversionservice,运行时类型转换和格式化服务接口,提供运行期类型转换和格式化的支持。

其对应存在一个工厂类formattingconversionservicefactorybean,我们也可以通过其注册自定义转换器。它的地位相当于我们上一篇文章提到的conversionservicefactorybean。我们将其装配在的conversion-service属性中。下面是我们的实例配置:

注册完后,我们即可进行我们的web测试:

启动服务器,我们在游览器中访问:

控制台对应输出:<code>http://localhost:8080/springmvc/convert?name=myname&amp;birthday=1995-01-01&amp;salary=5.000k</code>

person [name=myname, birthday=sun jan 01 00:00:00 cst 1995, salary=5] 从这里我们看出,成功完成了请求参数到user对象属性的格式化转换。

另一方面,如果我们想单独使用格式转化器,也可直接在方法入参中使用注解,看下面实例:

启动服务器,我们在游览器中访问:<code>http://localhost:8080/springmvc/convert?name=myname&amp;birthday=1995-01-01&amp;salary=50k</code>

控制台对应输出:

sun jan 01 00:00:00 cst 1995