SIMS/src/main/java/top/suyiiyii/sims/common/ModelMapperConfig.java

44 lines
1.7 KiB
Java

package top.suyiiyii.sims.common;
import org.modelmapper.ModelMapper;
import org.modelmapper.convention.MatchingStrategies;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @Author tortoise
* @Date 2024/8/20 21:19
* @PackageName:top.suyiiyii.sims.common
* @ClassName: ModelMapperConfig
* @Description: TODO
* @Version 1.0
*/
@Configuration
public class ModelMapperConfig {
@Bean
public ModelMapper modelMapper() {
ModelMapper modelMapper = new ModelMapper();
// 设置完全匹配
modelMapper.getConfiguration().setFullTypeMatchingRequired(true);
// 设置匹配策略为严格模式
modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
// configureUser(modelMapper);
return modelMapper;
}
// 配置 User 类的映射规则
private void configureUser(ModelMapper modelMapper) {
// 定义 UserModel -> User 的映射规则
// modelMapper.typeMap(RecordDto.class, Record.class)
// 跳过设置密码字段
// 定义 User -> UserModel 的映射规则
// modelMapper.typeMap(User.class, RecordDto.class)
// .addMappings(mapper -> mapper.skip(RecordDto::setPassword)) // 跳过设置密码字段
// .addMappings(mapper -> mapper.map(User::getRealName, UserModel::setName)); // 将 User 的 realName 映射为 UserModel 的 name
// .addMappings(mapper -> mapper.using(dateToStringConverter).map(User::getCreateTime, UserModel::setCreateTime))
// .addMappings(mapper -> mapper.using(dateToStringConverter).map(User::getUpdateTime, UserModel::setUpdateTime));
}
}