Skip to main content
 首页 » 编程设计

spring 集成 Orika Bean映射框架

2022年07月19日167rubylouvre

spring 集成 Orika Bean映射框架

前文介绍了Orika,本文介绍如何在spring框架中集成使用。

spring中注册

与spring 集成仅需定义统一的mapperFactory,然后把需要转换的bean依次注册至mapperFactory。

package com.mytutorial; 
 
import ma.glasnost.orika.MapperFactory; 
import ma.glasnost.orika.impl.ConfigurableMapper; 
 
import org.springframework.stereotype.Component; 
 
@Component 
public class MyCustomMapper extends ConfigurableMapper {
    
 
    protected void configure(MapperFactory factory) { 
        factory.classMap(PersonDomain.class, PersonDto.class) 
             .field("name", "nameFull") 
             .field("age", "ageThisYear").byDefault() 
            .register(); 
    } 
} 

这里可以配置多个转换。下面增加配置类扫描ConfigurableMapper。

import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
 
@Configuration 
@ComponentScan(basePackages={
  "com.mytutorial"}) 
public class AppConfig {
    
 
} 

测试映射

package com.mytutorial; 
 
import ma.glasnost.orika.MapperFacade; 
 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.context.ApplicationContext; 
import org.springframework.context.annotation.AnnotationConfigApplicationContext; 
import org.springframework.stereotype.Component; 
 
public class SimpleTest { 
    @Autowired 
    MapperFacade mapperFacade; 
 
    @Test 
    public void mapPesonDomainToPersonDto() { 
        PersonDomain p1Domain = new PersonDomain(); 
        p1Domain.setName("John Smith"); 
        p1Domain.setAge(25); 
 
        //map source: p1Domain to target:p1Dto using orika 
        PersonDto p1Dto = mapperFacade.map(p1Domain, PersonDto.class); 
 
        System.out.println("after mapping with orika: p1Dto = " + p1Dto); 
    } 
} 

Orika也支持双向映射,使用比较方便。

总结

本文介绍如何在spring中集成使用Orika,简化映射工厂定义。


本文参考链接:https://blog.csdn.net/neweastsun/article/details/80708697