Spring 怎么学习
穷举法:把生活所见所闻全部归纳到我们所学的知识体系中来,加以思考总结变成自己的东西。(举例子) 类比法:用自己熟悉的方法(利用自己已有的知识体系),去对比学习新的知识。
1.环境搭建
基本能力/要求 ->一般官网有讲解/博客
2.项目思路
看:是什么?
想:为什么?
实践:怎么做?
es: 调试的时候,完全可以在运行环境,导入jar就能调试(有针对性的打断点)
3.如何从0开始去学习
首先看官网文档,去网上找资料参考 (有了基本的概念,产生很多问题,很多猜想)
然后,看项目结构(更加具体的了解,还是产生很多猜想)
为什么会存在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
七分猜测三分验证 (七分靠打拼,三分天注定) 如果猜对了,会有一种成就感(永远不会忘)
看源码第一遍是非常痛苦的 看第二遍、看第三遍思路越来越清晰
带着思考去找入口(主入口、隐藏的入口)Thread
//要想跑起来,运行的run方法里面的代码
new Thread(){
//跑起来
public void go(){
... ...
}
public void run(){
... ...
}
}
RMI源码的时候
Socket:
socket.write(); 入口
ServerSocket:
while(true){
server.accept();
}
看Tomcat的源码
Main方法
Spring
(1)ClassPathXmlApplicationContext app 显示的入口
查找用户需要加载哪些配置文件
读取配置文件
注册
(2)AnnotationConfigApplicationContext 对注解Bean实例化
* 定位、加载、注册