首页 > 其他分享 >Springcore beanMap的使用

Springcore beanMap的使用

时间:2023-03-01 17:00:09浏览次数:34  
标签:String get cache entity beanMap key 使用 Springcore targetObject

default <S extends V> S save1(K key, S entity){
        IgniteCache<K, V> cache = cache();
        V targetObject = cache.get(key);
        BeanMap sourceBeanMap = BeanMap.create(entity);
        Map<String, Object> sourceMap = new HashMap<>();
        sourceBeanMap.forEach((key1, value) -> {
            sourceMap.put(String.valueOf(key1), value);
        });
        BeanMap targetBeanMap = BeanMap.create(targetObject);
        Map<String, Object> targetMap = new HashMap<>();
        targetBeanMap.forEach((key1, value) -> {
            targetMap.put(String.valueOf(key1), value);
        });
        for (String s : sourceMap.keySet()) {
            if(null != sourceMap.get(s)){
                targetMap.put(s,sourceMap.get(s));
            }
        }
        targetBeanMap.putAll(targetMap);
        cache.put(key,targetObject);
        return (S)targetObject;
    }


    default <S extends V> S save2(K key, S entity){
        IgniteCache<K, V> cache = cache();
        V targetObject = cache.get(key);
        /**
         * 第一次解析后,可以把方法缓存,提高性能
         */
        try {
            Method[] methods = targetObject.getClass().getMethods();
            for (Method targetMethod : methods) {
                String name = targetMethod.getName();
                if(name.startsWith("set")) {
                    String temp = name.substring(3);
                    String methodName = "get" +  temp.substring(0,1).toUpperCase() + temp.substring(1);
                    Method sourceGetMethod = entity.getClass().getMethod(methodName);
                    Object sourceValue = sourceGetMethod.invoke(entity);
                    if(null != sourceValue){
                        targetMethod.invoke(targetObject,sourceValue);
                    }
                }
            }
        } catch (NoSuchMethodException e) {
            throw new RuntimeException(e);
        } catch (InvocationTargetException e) {
            throw new RuntimeException(e);
        } catch (IllegalAccessException e) {
            throw new RuntimeException(e);
        }
        cache.put(key,targetObject);
        return (S)targetObject;
    }

 

反射方式对于boolean型可能没有set,get方法

标签:String,get,cache,entity,beanMap,key,使用,Springcore,targetObject
From: https://www.cnblogs.com/yangh2016/p/17168893.html

相关文章

  • flutter Column+Row+Text使用
    重要点1、Column+Row中混合使用层数嵌套时,Text在里面要解决超长报错的问题,需要在每一个Row中使用Expanded才行2、Text在Column中会自动换行,不需要单独处理。3、在Column......
  • CentOS 7上使用Python 3和虚拟环境
    在CentOS7上使用Python3和虚拟环境,请按照以下步骤操作:首先,确保您的系统已安装Python3。您可以使用以下命令检查Python3是否已安装:python3--version如果Python3已......
  • Unit Test下使用H2内存数据库
    1.Maven引入包<dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</version></dependency>2.在项目的sr......
  • InstancedMesh threejs 批量重复使用相同的物体和材质
    代码<!DOCTYPEhtml><htmllang="en"> <head> <title>three.jswebgl-instancing-raycast</title> <metacharset="utf-8"/> <meta name="viewport" ......
  • Java应用【十】使用Mockito进行模拟和测试桩
    如果您觉得本博客的内容对您有所帮助或启发,请关注我的博客,以便第一时间获取最新技术文章和教程。同时,也欢迎您在评论区留言,分享想法和建议。谢谢支持!相关阅读:​​Java应用【......
  • 成员方法使用细节和练习
    1.成员方法使用细节208//成员方法使用细节publicclassTest26{publicstaticvoidmain(String[]args){Aa=newA();a.print(2);a.sayOk();a.m1......
  • Python实战项目4-首页搭建/git安装使用
    前台主页功能首页页面组件头部组件(小组件)<template><divclass="header"><divclass="slogan"><p>老男孩IT教育|帮助有志向的年轻人通......
  • Integer使用==比较的问题
    Integer使用==比较的问题new一个对象publicInteger(intvalue){this.value=value;}自动装箱publicstaticIntegervalueOf(inti){if(i>=Integer......
  • SpringCloud OpenFeign的使用
    SpringCloudOpenFeign的使用是什么:声明式http客户端。目的:使远程调用更简单作用:提供了http请求模板,仅需编写简单接口和插入注解,就可以定义好原始http请求的参数、格......
  • 动态SQL与静态SQL使用场景
    静态SQL和动态SQL的区别静态SQL(或嵌入式SQL)是应用程序中的SQL语句,它们在运行时不会更改,因此可以硬编码到应用程序中。动态SQL是在运行时构造的SQL语句;例如,应用......