穷举法:

把生活所见所闻全部归纳到我们所学的知识体系中,加以思考变成自己的东西。(举例子)

类比法:

把自己熟悉的方法(利用自己已有的知识体系),去对比学习新的知识。

Spring 怎么学?

1. 环境准备好了没有?
2. 项目里边有红叉:x:

学习源码,不一定要让项目跑起来,报一两个红叉其实不要紧。

看:是什么?能干啥
想:为什么?
实践:怎么做?

调试的时候,完全可以在运行环境中,导入 jar 包就能调试(有针对性地打断点)

3. 如何从 0 -1 去学习
1.要先看官网

然后去网上找资料参考(有了基本的概念,产生了很多问题,很多猜想)

2.然后,看项目结构

(更加具体地了解,还是产生很多猜想)

3.为什么会存在 Spring 这个东西?

能做什么,做了什么,要我来做,我该怎么做?

4.IOC、AOP、DI、BeanFactory 等这样一系列零碎的概念(人云亦云)
5.能做什么:Java 中的万能胶
6.做了什么: JAVA Bean 能够实现无缝对接
7.要我来做,我该怎么做?

所谓一个框架而言,在编写框架代码的时候,所要对接的 Bean 是不存在的。

通过预设规则,按照一定的规则去顺序加载或识别需要对接的 Bean。(反射,通过类全名字符串可以找到,并创建一个 Bean 的实例)。

规定配置文件的默认名字。

IOC:缓存起来,得把它存起来(Map 容器)
DI: getter、setter、contructor (反射、invoker)
AOP: 为了增强原始 Bean 的功能(代理技术)

没有Spring 将如何开发?

1.认识懒惰的,一切高端技术的发明都是源于人类的懒惰,何不重复地造轮子呢?
2.没有 Spring ,那是到了 Spring 出现以前的开发了。
  1. 很多设计模式需要自己去整合,当然,你也可以选择不用设计模式(只不过多走点弯路而已)
  2. 所有的封装、集成、多态、增强、依赖、模块管理等等工作都有自己制定统一的规则(百花齐放、百家争鸣)
  3. 所有的创建对象、配置依赖关系、资源的重复利用、拓展性的手动操作
Spring 出现以后,JAVA 程序员的春天真的来了,解放了双手。
七分猜测,三分验证(七分靠打拼,三分天注定)

如果猜对了,就会有一种成就感。

看源码,第一遍是非常痛苦的。

看第二遍、看第三遍思路越来越清晰。

带着思考去找入口(主入口、隐藏的入口)

// 要想跑起来,运行的是 run 方法里边的代码
new Thread(){
    // 跑起来
    public void go(){
        
    }
    public void run(){
        
    }
}

RMI 中

// socket
socket.write(); // 入口

// ServerSocket
    while(true){
        server.accept();
    }    

看 Tomcat 的源码

  • Main 方法

Spring

  • ClassPathXMLApplicationContext app 显示的入口
    • 查找用户需要加载哪些配置文件
    • 读取配置文件
    • 注册

  • 定位
  • 加载
  • 注册

预习效果调查?

第二轮:预习文档老师不会带大家去课件了,自己在课前看,作为上课的补充资料(用于帮助大家去猜测资料)

:画图,梳理思路,答疑

微信公众号:不止极客