Spring源码阅读学习一
昨天抽时间阅读Spring源码,先从spring 4.x的core包开始吧,除了core和util里,首当其冲的就是asm和cglib。
要实现两个类实例之间的字段的复制功能:
多年之前用C#,因为阅读源码少,项目也比较小,自己使用反射机制就封装一个类似的方法来完成了(反正微软有钱有时间)。
前一段用Java,因为没系统读过Spring的源码,不知道有BeanUtils里的copy方法。
同事甲,用到了BeanUtils里的copy方法,他说也是见到他的同事这么用。
同事乙,和我当年用C#实现似的,重复造轮子(也算锻炼自己的编码能力了)。
我就自己抽取一个copy方法,采用正则表达式批量生成了非反射方式的set/get(这样效率也还高些,以后方法内部也能重构)。
看了几篇比较好的文章:
http://blog.csdn.net/jianhua0902/article/details/8155368
文章从编程需求出发,来龙去脉很清楚。
http://www.jianshu.com/p/f8b892e08d26
死抠 CGLIB中BeanCopier源码实现
https://yq.aliyun.com/articles/14528
云栖社区:cglib源码学习交流
http://www.cnblogs.com/bjzhanghao/archive/2004/07/30/28607.html#3683984
java老司机写的。
http://www.cnblogs.com/softidea/p/5608962.html
http://blog.csdn.net/fenglibing/article/details/7080340
https://www.ibm.com/developerworks/cn/java/j-lo-asm30/index.html
IBM社区,很早的技术文章。
Spring源码阅读学习一的更多相关文章
- Sping学习笔记(一)----Spring源码阅读环境的搭建
idea搭建spring源码阅读环境 安装gradle Github下载Spring源码 新建学习spring源码的项目 idea搭建spring源码阅读环境 安装gradle 在官网中下载gradl ...
- Bean实例化(Spring源码阅读)-我们到底能走多远系列(33)
我们到底能走多远系列(33) 扯淡: 各位: 命运就算颠沛流离 命运就算曲折离奇 命运就算恐吓着你做人没趣味 别流泪 心酸 更不应舍弃 ... 主题: Spring源码阅读还在继 ...
- 初始化IoC容器(Spring源码阅读)
初始化IoC容器(Spring源码阅读) 我们到底能走多远系列(31) 扯淡: 有个问题一直想问:各位你们的工资剩下来会怎么处理?已婚的,我知道工资永远都是不够的.未婚的你们,你们是怎么分配工资的? ...
- Spring源码阅读笔记02:IOC基本概念
上篇文章中我们介绍了准备Spring源码阅读环境的两种姿势,接下来,我们就要开始探寻这个著名框架背后的原理.Spring提供的最基本最底层的功能是bean容器,这其实是对IoC思想的应用,在学习Spr ...
- Spring源码阅读 之 配置的读取,解析
在上文中我们已经知道了Spring如何从我们给定的位置加载到配置文件,并将文件包装成一个Resource对象.这篇文章我们将要探讨的就是,如何从这个Resouce对象中加载到我们的容器?加载到容器后又 ...
- 搭建 Spring 源码阅读环境
前言 有一个Spring源码阅读环境是学习Spring的基础.笔者借鉴了网上很多搭建环境的方法,也尝试了很多,接下来总结两种个人认为比较简便实用的方法.读者可根据自己的需要自行选择. 方法一:搭建基础 ...
- Spring源码阅读-ApplicationContext体系结构分析
目录 继承层次图概览 ConfigurableApplicationContext分析 AbstractApplicationContext GenericApplicationContext Gen ...
- vnpy源码阅读学习(1):准备工作
vnpy源码阅读学习 目标 通过阅读vnpy,学习量化交易系统的一些设计思路和理念. 通过阅读vnpy学习python项目开发的一些技巧和范式 通过vnpy的设计,可以用python复现一个小型简单的 ...
- Spring源码阅读系列总结
最近一段时间,粗略的查看了一下Spring源码,对Spring的两大核心和Spring的组件有了更深入的了解.同时在学习Spring源码时,得了解一些设计模式,不然阅读源码还是有一定难度的,所以一些重 ...
随机推荐
- HTML和CSS实现左侧固定宽度右侧内容可滚动
在做移动端页面的时候,经常会碰到一个div中分左右两个div,左侧div固定宽度或百分比,右侧div中内容左右溢出,需要左右滑动才可以浏览到全部内容,为此写了一个demo. 处理这个问题的核心关键点是 ...
- vue-cli 如何打包上线
以vue创建的官方例子为例子,我们在开发环境的时候会 npm run dev ,生成 而想要打包成一份很简单, 只需要 npm run build 这个命令 这两种命令的配置文件在config的ind ...
- Codeforces Global Round 1 - D. Jongmah(动态规划)
Problem Codeforces Global Round 1 - D. Jongmah Time Limit: 3000 mSec Problem Description Input Out ...
- nginx的server块如何支持php
直接贴代码,备份用 server { listen ; server_name abc.com; index index.html index.htm index.php; root /var/www ...
- Ubuntu无法连接WiFi
lspci | grep Network1.查看自己的无线网卡驱动2.下载驱动https://www.intel.cn/content/www/cn/zh/support/articles/00000 ...
- docker 仓库搭建
阿里云服务器: 127.0.0.1(客户端) 127.0.0.2(私有服务器) 127.0.0.2作为私有仓库使用 1.下载镜像 [root@insure ~]# docker pull regist ...
- highchart 对于顶端刻度丢失问题
title: { text: '', align: 'center' }, labels: { overflow: 'justify', formatter: function () { return ...
- 【UOJ 17】飞扬的小鸟
UOJ 17 题意:在\(n\times m\)的网格中有一些柱子,它们可以通过的区间是\((L_i,R_i)\),位置在\(P_i\).在第i个位置点击一次会使高度增加\(X_i\),不点击会使高度 ...
- 学习Android(入门基础和实用教程)
为了方便大家学习,准备录制Android基础篇的视频教程, https://item.taobao.com/item.htm?spm=0.7095261.0.0.17a61debAKIDPI& ...
- Excel 2007 底层实现方式
一.EXCEL的底层实现 能力有限,了解的比较浅,有不足之处望指正,首先看下图: 一. excel2007是使用xml格式来存储的,把一个excel文件后缀改为.zip,打开之后就直接可以看到一个ex ...