将map转为Bean的工具类 BeanUtil】的更多相关文章

Bean拷贝工具类性能比较 引言 几年前做过一个项目,接入新的api接口.为了和api实现解耦,决定将api返回的实体类在本地也建一个.这样做有两个好处 可以在api变更字段的时候保持应用稳定性 可以对返回的实体的属性做处理,以提高可读性.例如接口返回long类型的时间戳,则将该字段在本地实体类中对应字段设置为date类型方便使用. 大致是这样的一个应用场景.当时刚毕业,充斥的都是A.setName(B.getName)这种类型的代码.当字段非常多的时候看起来非常臃肿,最重要的给人感觉不优雅.…
前言 在Spring帮我们管理bean后,编写一些工具类的时候需要从容器中拿到一些对象来做一些操作,比如字典缓存工具类,在没有找到字典缓存时,需要dao对象从数据库load一次,再次存入缓存中.此时需要在util工具类中拿到ioc容器中的dao对象. 原理 spring容器在加载的时候会把ApplicationContext注入到实现了ApplicationContextAware的类中,拿到applicationContext后,可以通过getBean来拿到ioc容器中管理的对象 通过实现Di…
import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.HashMap;import…
package com.hnf.framework.utils; import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.BeanUtils; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import jav…
在开发中,总是能碰到用注解注入不了Spring容器里面bean对象的问题.为了解决这个问题,我们需要一个工具类来直接获取Spring容器中的bean.因此就写了这个工具类,在此记录一下,方便后续查阅.废话不多说,直接上代码. 一.代码 package com.zxy.demo.spring; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext;…
前言 这次新建了一个工程,因为 Lombok 用得很习惯,但以前的话,一般只用了@Data,@AllArgsConstructor,@EqualsAndHashCode等常规注解:那这个Accessors(chain = true)注解是干嘛的呢? 用了这个注解后,生成的set方法是这样的: #加了Accessors(chain = true) public Devolution setCenterId(Long centerId) { this.centerId = centerId; ret…
最近刚学完集合框架,想把自己的一些学习笔记与想法整理一下,所以本篇博客或许会有一些内容写的不严谨或者不正确,还请大神指出.初学者对于本篇博客只建议作为参考,欢迎留言共同学习. 之前有介绍集合框架的体系概念(http://www.cnblogs.com/yjboke/p/8761195.html),本篇介绍一下Map的常用方法及常用工具类. map基本查询方法: 增加:put.putAll: 删除:remove(输如键进行删除).clear(删除集合所有元素) 查询:get(输入键查询值).siz…
1.Map(掌握) (1)将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. (2)Map和Collection的区别? A: Map 存储的是键值对形式的元素,键唯一,值可以重复. 理解为:夫妻对 B: Collection存储的是单独出现的元素,子接口List元素可重复,子接口Set元素唯一. 理解为: 光棍 (3)Map接口功能概述 A: 添加功能 V put(K key, V value) 将指定的值与该映射中的指定键相关联(可选操作). B: 删除功能 void…
package com.tech.jin.util; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; /** * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext. * */ public class SpringUtil im…
public static <T> T converter(Map<String, Object> map, Class<T> clz) { T obj = null; try { obj = clz.newInstance(); BeanInfo beanInfo = Introspector.getBeanInfo(clz); PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescrip…