# BeanMapper
一个 BeanUtils.copyProperties 的小型快速替代。
## 起因
由于 BeanUtils (Spring 或 Apache Commons) 的 copyProperties 实现是利用反射实现的,它在大量调用时具有比较严重的性能问题。
BeanMapper 通过 javassist 类库实现在运行时直接生成字节码来转换类,在首次构建后,后续运行可以提供近原生的读写速度。
## 限制
* 类必须具有符合小驼峰规范的 JavaBean setter 和 getter。否则无法正常访问类。
* 类必须是公共可见的,否则会发生访问错误。
## 效率
在 10000000 次复制测试中
BeanUtils.copyProperties 用时 9809 毫秒
StaticBeanMapper.copy 用时 100毫秒(首次编译)+ 3633 毫秒(后续 10000000 次调用)
BeanMapper.copy 用时 98毫秒(首次编译)+ 1641 毫秒(后续 10000000 次调用)
手写 setter 用时 1479 毫秒
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
BeanMapper 一个BeanUtils.copyProperties的小型快速替代。 起因 由于BeanUtils(Spring或Apache Commons)的copyProperties实现是利用反射实现的,它在大量调用时具有比较严重的性能问题。 BeanMapper通过javassist类库实现在运行时直接生成字节码来转换类,在首次生成后,后续运行可以提供近原生的读写速度。 限制条件 类必须具有符合小驼峰规范的JavaBean setter和getter。否则无法正常访问类。 类必须是公共可见的,否则会发生访问错误。 效率 在10000000次复制测试中 BeanUtils.copyProperties用时9809毫秒 StaticBeanMapper.copy用时100毫秒(首次编译)+ 3633毫秒(后续10000000次调用) BeanMapper.copy用时98毫
资源推荐
资源详情
资源评论
收起资源包目录
BeanMapper-master.zip (16个子文件)
BeanMapper-master
gradle.properties 26B
gradle
wrapper
gradle-wrapper.jar 58KB
gradle-wrapper.properties 200B
.github
workflows
releases.yml 366B
src
test
java
party
liyin
test
Test.java 5KB
main
java
party
liyin
beanmapper
BeanMapper.java 3KB
BeanMapperException.java 171B
BeanCopyable.java 112B
StaticBeanMapper.java 2KB
LICENSE 1KB
gradlew.bat 3KB
build.gradle 1KB
settings.gradle 33B
gradlew 6KB
.gitignore 26B
README.md 899B
共 16 条
- 1
资源评论
小风飞子
- 粉丝: 321
- 资源: 1496
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功