最近在使用@DateFormate , 进行信息日期格式化的时候,在思考他是怎么实现的呢。我们这里设计一下啊,首先他要有参数解析,还要加入后置的参数处理器里面,就是response 返回显示到modelview 页面的这一步骤。也就是说我们要先自定义注解, 根据属性上面的自定义注解, 找出对应的参数解析器。 要对参数类型, 参数值进行转化。 最后在加入后置的参数处理器里面。也就是加入消息转换器里面。
这里我们先自定义注解试一下,我们就以手机号为列子,
作用于属性上面,在写一个
这里的参数过滤器是fastJson的参数过滤器里面有三个值,name 就是属性的名字,value 就是属性的值,object 就是当前对象。
这里我们先判断 值是否为null, 是否是String类型的,长度是否为空,满足三个之一,返回原值。
然后判断属性上面有没有我们自定义的注解,没有还是原值返回,有的情况下就
在判断name 的类型是否是String的,在强制转换为String,
在重新赋值
这里我们就做截取的操作。
我们在把它加入自定义的消息转换器里面
这里我们消息转换器使用的是json 序列化使用的是 fastjson
在写一个测试类试一下
ok,完美