概念
BeanUtils
核心工具,提供实体拷贝的相关方法,支持属性映射、类型转换和批量拷贝等功能。
BeanUtils.ConcurrencyManager
提供开启和关闭多线程处理模式和获取当前处理模式的方法:
BeanPropertyCopyException
属性拷贝过程中发生的异常。
@Mapping
核心注解,配置字段的映射关系、转换器等内容。
@Nested
标记字段为嵌套的对象,需要指定嵌套对象以及对应映射对象的类型。
@DictMapping
字典类映射使用的注解,用于代替原有的AbstractDictionaryConverter
的方案。
DictDataResolver
字典表数据加载适配器,一般来说依赖于某个服务,负责获取数据并转换为字典数据。
当
@DictMapping
配置mode=FetchMode.BATCH
时,使用Map resolve(String key);
方法,参数是@DictMapping
中配置的key
属性,返回字典映射所有数据的Map<Object, Object>
。当
@DictMapping
配置mode=FetchMode.SINGLE
时,使用Object resolveSingle(String key, Object source);
方法,参数是@DictMapping
中配置的key
属性以及映射源属性的值,返回映射结果。
TypeConverter
类型转换器接口,自定义的转换器需要实现此接口。使用者需要自行处理空值和异常(统一捕获异常并转换为TypeConvertException
)。
AbstractTypeConverter
类型转换器的抽象类,封装了空值判断和异常处理逻辑。默认对于空值会直接返回,使用者如果对空值有特殊的转换需求,可以覆盖convertNull()
方法返回期望的值。
AbstractToStringConverter
对象/集合转换为单个字符串的转换器抽象类,作用于集合时,转换器会将每个元素的处理结果用getDelimiter()
方法返回的分隔符分隔(默认分隔符为",")。
使用者需要实现itemToString(Object item)
方法,实现对象/集合元素转换为字符串的逻辑。可以根据需要重写getDelimiter()
方法。
AbstractListConverter
集合转换为List
的转换器抽象类,针对一个给定的集合,遍历其中的元素进行转换,然后返回一个目标对象的List
(使用ArrayList
实现)。
使用者需要实现convertItem(Object item)
方法,实现集合中单个元素的转换逻辑。
AbstractSetConverter
集合转换为Set
的转换器抽象类,针对一个给定的集合,遍历其中的元素进行转换,然后返回一个目标对象的Set
(使用HashSet
实现)。
使用者需要实现convertItem(Object item)
方法,实现集合中单个元素的转换逻辑。
AbstractDictionaryConverter
字典表数据的转换器抽象类,提供字典类数据的双向转换功能。
使用者需要实现getDictionary()
方法,返回Map<Object, Object>
类型的字典数据。
Last updated