自定义转换
对于无法自动处理的情形,使用者需要自定义TypeConverter
完成源字段到目标字段的转换,通过@Mapping
注解的converter
和inverseConverter
属性,将转换器应用于映射中。两个属性均支持以数组形式传入多个转换器。
class Foo {
Boolean gender = false;
}
class FooDto {
@Mapping(converter=GenderConverter.class, inverseConverter=GenderConverter.class)
String gender;
}
class GenderConverter extends AbstractDictionaryConverter {
@Override
protected Map<Object, Object> getDictionary() {
Map<Object, Object> dictionary = new HashMap<>();
dictionary.put("0", "男");
dictionary.put("1", "女");
return dictionary;
}
}
FooDto fooDto = BeanUtils.copyProperties(foo, FooDto.class);
System.out.println(fooDto.getGender()) // "男"
如果转换器中需要依赖于某个Spring Bean,可以使用@Component
注解将自定义的转换器纳入Spring的管理,详细说明请参考:
Last updated