转自:http://blog.sina.com.cn/s/blog_79ae79b30100t4hh.html

如果动态设置一个对象属性,可以借助Java的Reflection机制完成:

Class cls = Class.forName("packageAname.subPackage.ClassName");
Method mtd = cls.getMethod("methodName",new Class[]{String.class});
Object obj = (Object)cls.newInstance();
mtd.invoke(obj,new Object[]{....});
return obj;

假设这些常量比如类名和方法名都是通过配置文件读入,那我们就实现了一个最简单的BeanWrapper。这个BeanWrapper的功能很简单,提供一个设置JavaBean属性的通用方法(Apache BeanUtils 类库中提供了大量针对Bean的辅助工具,如果有兴趣可以下载一份源码加以研读)。Spring BeanWrapper基于同样的原理,提供了一个更加完善的实现。

Object obj = Class.forName("packageAname.subPackage.ClassName").newInstance();
BeanWrapper bw = new BeanWrapperImpl(obj);
bw.setPropertyValue("propertyName", "updateValue");//propertyName属性名称,updateValue属性值
System.out.println(bw.getPropertyValue("propertyName"));

转载于:https://www.cnblogs.com/sharpest/p/7868862.html

spring的BeanWrapper类的原理和使用方法相关推荐

  1. Spring 容器AOP的实现原理——动态代理

    本文来自极客学院 Spring 容器AOP的实现原理--动态代理 之前写了一篇关于IOC的博客--<Spring容器IOC解析及简单实现>,今天再来聊聊AOP.大家都知道Spring的两大 ...

  2. 17、Spring Boot普通类调用bean【从零开始学Spring Boot】

    转载:http://blog.csdn.net/linxingliang/article/details/52013017 我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个 ...

  3. spring boot中servlet启动原理

    启动过程及原理 1 spring boot 应用启动运行run方法 StopWatch stopWatch = newStopWatch();stopWatch.start();Configurabl ...

  4. Spring Boot的自动化配置原理

    转载自 Spring Boot的自动化配置原理 随着Ruby.Groovy等动态语言的流行,相比较之下Java的开发显得格外笨重.繁多的配置.低下的开发效率.复杂的部署流程以及第三方技术集成难度大等问 ...

  5. Spring Enable*高级应用及原理

    转载自 Spring Enable*高级应用及原理 Enable* 之前的文章用到了一些Enable*开头的注解,比如EnableAsync.EnableScheduling.EnableAspect ...

  6. spring boot 启动类

    做项目用到spring boot 感觉spring boot用起来比较流畅.想总结一下,别的不多说,从入口开始. spring boot启动类Application.class 不能直接放在main/ ...

  7. Spring事务管理(二)-TransactionProxyFactoryBean原理

    2019独角兽企业重金招聘Python工程师标准>>> 通常Spring事务管理的配置都是XML或者声明式注解的方式,然后想要学习其运行的原理,从TransactionProxyFa ...

  8. Spring读取xml配置文件的原理与实现

    2019独角兽企业重金招聘Python工程师标准>>> Spring读取xml配置文件的原理与实现 本篇博文的目录: 一:前言 二:spring的配置文件 三:依赖的第三方库.使用技 ...

  9. springboot自动配置原理_今日份学习之Spring Boot自动配置实现原理

    通过前面章节的学习,我们掌握了使用Spring Boot框架进行实际应用开发的方法.在使用Spring Boot 的过程中,我们时常会为一些看似简单,但实际上蕴藏了强大功能的实现而惊呼,下面就让我们来 ...

最新文章

  1. Keras入门(一)搭建深度神经网络(DNN)解决多分类问题
  2. 【错误记录】Google Play 上架报错 ( 您上传的 APK 没有经过 Zipalign 处理,请对 APK 运行 Zipalign 工具,然后重新上传。)
  3. Windows 10如何禁用Microsoft Edge标签页预览
  4. PIC单片机 IIC通信及实现
  5. 程序员面试题精选100题(28)-字符串的排列[算法]
  6. C++程序的执行过程
  7. 移动html特殊链接【打电话_发短信_发邮件】
  8. 1155: 零起点学算法62——输出矩阵
  9. 【BIRT】使用rptlibrary设置统一数据源
  10. <table/>默认适应内容宽度造成滚动条不显示的解决方法
  11. 「初步」Spring与commons的BeanUtil.copyProperties
  12. 【牛客 - 331E】炫酷划线(权值线段树,树状数组哈希,随机数)
  13. android studio开源代码,Android Studio Set of source 代码源集
  14. python if name main 的作用_Python中if __name__ == '__main__':的作用和原理
  15. 零基础开始学前端有什么建议?
  16. 随想录(学习英文的好处)
  17. Win7安装 Rational Rose软件
  18. 不知道如何做好精益生产管理?可能是你的企业还没有进行工时分析
  19. 广告管理系统-数据库表设计
  20. 华为服务器自检信息怎么开,服务器开机自检内存

热门文章

  1. cout设置输出数据不显示科学计数法
  2. javascript之温习闭包
  3. CAS(compareAndSwap)原理
  4. JavaScript内存优化
  5. 通用权限管理系统组件 给信息管理系统加一个初始化的功能,调用存储过程
  6. FirewallD 详解
  7. JAVA中的枚举小结
  8. 常用Shell脚本编写的内置变量
  9. 建议转变编程时的思维习惯改为:忽略细节关扰,直指问题核心,追寻问题关键。...
  10. php实现适配器模式(转)