JAVA的映射工具 BeanUtils dozer的使用方法

1.BeanUtils的使用

BeanUtils.copyProperties(A, B)      //将B的值映射给A

要求:映射的字段名称要一致

具体的方法及理论见    https://blog.csdn.net/megustas_jjc/article/details/53525026  大神写的相当详细

2.dozer的使用

对于映射工具来说,dozer是个相当令人满意的选择,它可以灵活地处理复杂类型之间的映射。不但可以进行简单的属性映射、复杂的类型映射、双向映射、递归映射等,并且可以通过XML配置文件进行灵活的配置。

首先就是添加依赖



    net.sf.dozer
    dozer-spring
    5.5.1

 

① 项目中使用dozer

如果要映射的两个对象有完全相同的属性名,则只需要直接使用Dozer的API即可:

Mapper mapper = new DozerBeanMapper();
DestinationObject destObject = mapper.map(sourceObject, DestinationObject.class);

但是在实际映射当中,往往会存在属性名不相同的映射。这时候只需要添加配置文件告诉Dozer怎么映射即可。在现实应用中最好不要每次映射对象时都创建一个Mapper实例来工作,这样会产生不必要的开销。如果不使用IoC容器(Spring)来管理,则最好将Mapper定义为单例模式。

配置文件如下:

首先在中写入两个相互映射的类标签里定义要映射的特殊属性。里是的字段,相应的中要映射的字段。





	
		MM/dd/yyyy HH:mm
	

	
		dozer.jqq.BeanDO.UserDO
		dozer.jqq.BeanVO.UserVO
		
			create_time
			createTime
			
		
		
			password
			passaword
		
	

将dozerBeanMapping.xml配置文件放在resources根目录下:

DozerBeanMapper mapper = new DozerBeanMapper();
UserVO vo = mapper.map(userDO, UserVO.class);

   如若配置文件放在了其他位置,则需要添加如下几行代码:

List myMapperFile = new ArrayList();
myMapperFile.add("****/dozer-mapper.xml");
mapper.setMappingFiles(myMapperFile);

 

②Spring整合Dozer

首先,在spring下创建spring-dozer.xml,我将配置文件写在了dozer文件夹里。Dozer与Spring整合,只要声明一个DozerBeanMapperFactoryBean,然后将所有的dozer映射配置文件作为属性注入到mappingFiles,DozerBeanMapperFactoryBean会自动载入这些规则。




  
    
      
        
        classpath*:dozer/dozer-mapping.xml
      
    
  

 

然后在代码中直接写如下代码即可:

Mapper mapper = DozerBeanMapperSingletonWrapper.getInstance();
mapper.map(userDO, userVO);

 

你可能感兴趣的:(java知识点)