Spring源码分析前篇
穷举法:把生活所见所闻全部归纳到我们所学的知识体系中来,加以思考总结变成自己的东西。(举例子)
类比法:用自己熟悉的方法(利用自己已有的知识体系),去对比学习新的知识。
学习最好的方法:就是重复
Spring怎么学?
1、环境准备好了没有?(自学能力的考研)
2、项目里头有红叉
学源码 ,不一定要让项目完全跑起来,包一两个红叉其实不要紧
看:是什么? 能干啥
想:为什么?
---------------------------
实践:怎么做?
调试的时候,完全可以在运行环境,导入jar就能调试(有针对性的打断点)
3、如何从0到1去学习
首先看官网文档,去网上找资料参考 (有了基本的概念,产生很多问题,很多猜想)
然后,看项目结构(更加具体的了解,还是产生很多猜想)
为什么会存在Spring这个东西?
能做什么,做了什么,要我来做,我该怎么做?
IOC、AOP、DI、BeanFactory等这样的一些零碎的概念(人云亦云)
能做什么:Java中的万能胶
做了什么:Java Bean能够实现无缝对接
要我来做,我该怎么做: 作为一个框架而言,在编写框架代码的时候,所要对接Bean是不存在
通过预设规则,按照一定的规则去顺序加载或识别需要对接的Bean(反射,通过类全名字符串可以找到并创建一个Bean的实例)
规定配置文件的默认名字
IOC:缓存的地方,得把它存起来(Map容器)
DI:getter、setter、constructor(反射、invoker)
AOP:为了增强原始Bean的功能(代理技术)
4、没有Spring将如何开发?
人是懒惰的,一切高端技术的发明都是源于人类懒惰,何必重复造轮子呢?
没有Spring,那是到了Spring出现以前的开发了
a、很多设计模式需要自己去整合,当然,你也可以选择不用设计模式(只不过多走点弯路而已)
b、所有的封装、继承、多态、增强、依赖、模块管理等等工作都有自己制定统一的规则(百花齐放,百家争鸣)
c、所有的创建对象、配置依赖关系、资源的重复利用、扩展性的手动操作
Spring出现以后,Java程序员的春天真的来了,解放了
Tom老师学习Spring:七分猜测三分验证 (七分靠打拼,三分天注定)
如果猜对了,会有一种成就感(永远不会忘)
看源码第一遍是非常痛苦的
看第二遍、看第三遍思路越来越清晰
带着思考去找入口(主入口、隐藏的入口)
//要想跑起来,运行的run方法里面的代码
new Thread(){
//跑起来
public void go(){
... ...
}
public void run(){
... ...
}
}
RMI源码的时候
Socket socket.write(); 入口
ServerSocket while(true){ server.accept(); }
看Tomcat的源码
Main方法
Spring
ClassPathXmlApplicationContext app 显示的入口
查找用户需要加载哪些配置文件
读取配置文件
注册
定位、加载、注册
Spring源码分析前篇相关推荐
- Spring 源码分析衍生篇十 :Last-Modified 缓存机制
文章目录 一.前言 二.Last-Modify 三.实现方案 1. 实现 org.springframework.web.servlet.mvc.LastModified接口 1.1. 简单演示 1. ...
- Spring 源码分析衍生篇十三 :事务扩展机制 TransactionSynchronization
文章目录 一.前言 二.TransactionSynchronization 1. TransactionSynchronization 1.1 TransactionSynchronization ...
- Spring 源码分析衍生篇三 : lookup-method 和 replaced-method
文章目录 一.前言 二.基本使用 1. 作用 三.原理实现 1. 预处理 1.1 AbstractBeanDefinition#prepareMethodOverrides 1.2 Autowired ...
- spring源码分析之spring-core总结篇
1.spring-core概览 spring-core是spring框架的基石,它为spring框架提供了基础的支持. spring-core从源码上看,分为6个package,分别是asm,cgli ...
- Spring源码分析系列——bean创建过程分析(三)——工厂方法创建bean
前言 spring创建bean的方式 测试代码准备 createBeanInstance()方法分析 instantiateUsingFactoryMethod()方法分析 总结 spring创建be ...
- Spring源码分析之Bean的创建过程详解
前文传送门: Spring源码分析之预启动流程 Spring源码分析之BeanFactory体系结构 Spring源码分析之BeanFactoryPostProcessor调用过程详解 本文内容: 在 ...
- 【Spring源码分析】Bean加载流程概览
代码入口 之前写文章都会啰啰嗦嗦一大堆再开始,进入[Spring源码分析]这个板块就直接切入正题了. 很多朋友可能想看Spring源码,但是不知道应当如何入手去看,这个可以理解:Java开发者通常从事 ...
- beaninfo详解源码解析 java_【Spring源码分析】Bean加载流程概览
代码入口 之前写文章都会啰啰嗦嗦一大堆再开始,进入[Spring源码分析]这个板块就直接切入正题了. 很多朋友可能想看Spring源码,但是不知道应当如何入手去看,这个可以理解:Java开发者通常从事 ...
- Spring 源码分析(三) —— AOP(五)创建代理
2019独角兽企业重金招聘Python工程师标准>>> 创建代理 代理的定义其实非常简单,就是改变原来目标对象方法调用的运行轨迹.这种改变,首先会对这些方法进行拦截,从而为这些方法提 ...
最新文章
- 看了 100多份简历后,想给找工作的程序员几点建议
- 人工神经网络发现生物神经网络,智源超高清电镜图像分割挑战赛开赛
- 字符串编辑距离(转载)
- 前端技术之_CSS详解第五天
- mysql实现decode_Oracle中的DECODE()函数,MySQL中怎么实现DECODE()函数
- 试用VisualStudio2005Beta2出现的小BUG
- liniux备忘录-磁盘配额与进阶文件系统管理
- 重磅:阿里发布神器工具,直接帮你改代码,我高潮了!网友:工作量又减轻了!...
- k3 审核流程图_3 金蝶K3操作流程图详解
- 在php中使用for、while、do-while循环实现从1加到100
- 1.1 经典车间生产调度问题模型及其算法
- 这是我的脚本原型。。比我的生成器的麻烦(这种最稳定,我做成的脱机刷毛实
- python读取odb_abaqus通过python从ODB中抽取模型数据和结果数据.pdf
- gitbub(cp:http://www.linuxidc.com/Linux/2014-03/97821.htm)
- 【C++要笑着学】类的默认成员函数详解 | 构造函数 | 析构函数 | 构造拷贝函数
- Java使用PDFBox将多个PDF合并为单个PDF
- u盘中毒文件为html文档,u盘中毒文件被隐藏怎么办【解决方法】
- Frame-Pannel-Button综合
- ohci之usb_submit_urb
- 给父元素添加点击事件时,获取到的 event.target 为子元素(point-events: none 的妙用)