spring 集成 Orika Bean映射框架

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,简化映射工厂定义。

猜你喜欢

转载自blog.csdn.net/neweastsun/article/details/80708697