上一篇博客说明了数据转换器,但是操作略微麻烦,需在app.xml中进行配置,其实实现数据转换还有一种方式,就是通过注解的方式实现。
在需要转换的属性前加上所需类型的注解。
\
@DateTimeFormat注解:可对java.util.Date、java.util.Calendar、java.long.Long时间类型进行标注:
- 1、pattern 属性:类型为字符串。指定解析/格式化字段数据的模式,如:yyyy-MM-ddhh:mm:ss
- 2、ISO属性:指定解析/格式化字段数据的ISO模式,包括四种:ISO.NONE(默认值,不使用)、ISO.DATE(yyyy-MM-dd) 、ISO.TIME(hh:mm:ss.SSSZ)、ISO.DATE_TIME(yyyy-MM-ddhh:mm:ss.SSSZ)
- 3、style 属性:字符串类型。通过样式指定日期时间的格式,由两位字–符组成,第一位表示日期的格式,第二位表示时间的格式:S:短日期/时间格式、M:中日期/时间格式、L:长日期/时间格式、F:完整日期/时间格式、-:忽略日期或时间格式
@NumberFormat注解:可对类似数字类型的属性进行标注,它拥有两个互斥的属性:
1、pattern属性:自定义样式,如patter="#,###";
2、style属性:指定样式类–型,包括三种:Style.NUMBER(正常数字类型)、Style.CURRENCY(货币类型)、Style.PERCENT(百分数类型)
注意:如果同时使用数据类型转换器和数据格式化,那么需要在配置app.xml时,使用FormattingConversionServiceFactroyBean类。
因为:使用ConversionServiceFactoryBean类的话,默认创建的ConversionService实例不再是org.springframework.format.support.DefaultFormattingConversionService对象,而是org.springframework.core.convert.support.DefaultConversionService对象,无法使用@DateTimeFormat和@NumberFormat注解