Orika简介
Orika是一个Java Bean映射框架,它提供了一个简单而强大的方式,用于将一个Java Bean对象的内容复制到另一个Java Bean对象中。Orika使用Java反射机制来检查Bean属性,并提供一组注解来控制Bean映射。
Orika提供了以下特性:
- 支持复杂对象图的映射。
- 可以配置映射规则和转换器,以自定义Bean属性之间的映射关系。
- 支持通过注解控制映射行为,如忽略某些属性或自定义映射规则。
- 可以生成Mapper实现类,提高映射性能。
- 可以与Spring集成,方便在Spring应用程序中使用。
- 使用Orika可以方便地实现Bean之间的转换,减少手动编写转换代码的工作量,提高开发效率。
Orika使用
添加依赖
<dependency>
<groupId>ma.glasnost.orika</groupId>
<artifactId>orika-core</artifactId>
<version>1.5.4</version>
</dependency>
添加配置文件
@Configuration
public class OrikaConfig {
@Bean
public MapperFactory mapperFactory() {
return new DefaultMapperFactory.Builder().build();
}
@Bean
public MapperFacade mapperFacade() {
return mapperFactory().getMapperFacade();
}
}
使用
@Autowired
private MapperFacade mapperFacade;
...
@PutMapping
@ApiOperation(value = "更新用户表", notes = "更新用户表")
public ServerResponseEntity<Void> update(@Valid @RequestBody UserDTO userDTO) {
...
User user = mapperFacade.map(userDTO, User.class);
...
}
自定义配置
@Configuration
public class MapperFacadeConfig {
/**
* 定义mapperFacade
* @return
*/
@Bean
public MapperFacade getMapperFacade() {
DefaultMapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
addMapper( mapperFactory );
return mapperFactory.getMapperFacade();
}
/**
* 配置映特殊映射关系
* @param mapperFactory
*/
public void addMapper(DefaultMapperFactory mapperFactory){
mapperFactory.classMap(UserDto.class, User.class)
.field("name","nickName")//不一样的字段映射
.byDefault()//剩余的字段映射默认
.register();
}
}