Java Spring自定义格式化程序到字段批注不起作用

Java Spring自定义格式化程序到字段批注不起作用,java,spring,formatting,spring-annotations,formatter,Java,Spring,Formatting,Spring Annotations,Formatter,我正在尝试将格式化程序注释应用于下一个模型类中的字段“phone”: 公共类用户{ @联系人号码格式 私人电话; } 注释界面: @Target({ElementType.METHOD,ElementType.FIELD}) @保留(RetentionPolicy.RUNTIME) public@interface ContactNumberFormate{ } 格式化程序: @组件 公共类PhoneFormatter实现格式化程序{ @凌驾 公共字符串解析(字符串phoneNum、区域设置

我正在尝试将格式化程序注释应用于下一个模型类中的字段“phone”:

公共类用户{
@联系人号码格式
私人电话;
}
注释界面:

@Target({ElementType.METHOD,ElementType.FIELD})
@保留(RetentionPolicy.RUNTIME)
public@interface ContactNumberFormate{
}
格式化程序:

@组件
公共类PhoneFormatter实现格式化程序{
@凌驾
公共字符串解析(字符串phoneNum、区域设置)引发ParseException{
phoneNum=phoneNum.trim();
字符串regex=“^\\(?(\\+*1)?[-.\\s*]?([0-9]{3})\\)?[-.\\s*]?([0-9]{3})[-.\\s*]?([0-9]{4})$”;
Pattern.compile(regex).matcher(phoneNum);
返回phoneNum;
}
@凌驾
公共字符串打印(字符串电话、区域设置){
回电话;
}
}
注释工厂:

公共类PhoneFormatAnnotationFormatterFactory实现
注释格式化程序工厂{
@凌驾
公用设置getPrinter(ContactNumberFormat ContactNumberFormat,类aClass){
返回新的PhoneFormatter();
}
@凌驾
公共解析器getParser(ContactNumberFormat ContactNumberFormat,类aClass){
返回新的PhoneFormatter();
}
}
FormatterRegistrar:

公共类应用程序FormatTerRegister实现FormatterRegistrar{
@凌驾
公共无效注册表格式(FormatterRegistry FormatterRegistry){
addFormatterForFieldAnnotation(新的PhoneFormatAnnotationFormatterFactory());
}
}
配置:


而且它不起作用:电话值保存在数据库中,但以非格式化形式保存

注意:当我在PhoneFormatter上使用断点在debug中运行测试时,测试完全通过。这意味着,我的格式化程序已超出进程。但当我在
PhoneFormatAnnotationFormatterFactory.getFieldTypes
上设置断点时,测试中断

特别是,在
返回Collections.singleton(String.class)上使用断点进行调试输入


public set此行的目的是什么:
Pattern.compile(regex).matcher(phoneNum)?您没有对返回的
匹配器执行任何操作。你们期望它做什么?我还并没有完全沉浸在格式化程序方法的实现中。现在我看到,我的应用程序没有看到任何实现的格式化程序注释……这一行的目的是什么:
Pattern.compile(regex).matcher(phoneNum)?您没有对返回的
匹配器执行任何操作。你们期望它做什么?我还并没有完全沉浸在格式化程序方法的实现中。现在我看到,我的应用程序没有看到任何实现的格式化程序注释。。。