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以前是如何开发?
   a、很多设计模式需要自己去整合;
   b、所有的封装、继承、多态、增强、依赖、模块管理等等工作都有自己制定统一的规则(杂乱无章);
   c、所有的创建对象、配置依赖关系、资源的重复利用、扩展性的手动操作
   Spring出现以后,Java程序员解放了双手

5、如何学习Spring:七分猜测三分验证
       看源码第一遍是非常痛苦的;
       看第二遍、看第三遍思路越来越清晰
       带着思考去找入口(主入口、隐藏的入口)
                   
6、Spring:定位、加载、注册

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

spring源码分析第一天------源码分析知识储备相关推荐

  1. PostgreSQL数据库源码安装第一步——configure脚本分析(环境检测)

    源码编译PG8.4.1时,需要在安装完几个依赖的开发库后,在源代码目录下运行configure脚本.下面我们就分析一下该名为configure的shell脚本.其主要功能是猜测系统依赖变量的值并创建M ...

  2. 黑马上新Spring全套教程(含实战源码)

    "八股在手,offer全有",为了通过面试,你有背过"八股文"吗? 教程推荐:黑马程序员新版Spring零基础入门到精通,一套搞定spring全套视频教程(含实 ...

  3. Spring Boot 2.x 启动全过程源码分析(上)入口类剖析

    转载自   Spring Boot 2.x 启动全过程源码分析(上)入口类剖析 Spring Boot 的应用教程我们已经分享过很多了,今天来通过源码来分析下它的启动过程,探究下 Spring Boo ...

  4. Spring Boot Dubbo 应用启停源码分析

    作者:张乎兴 来源:Dubbo官方博客 背景介绍 Dubbo Spring Boot 工程致力于简化 Dubbo RPC 框架在Spring Boot应用场景的开发.同时也整合了 Spring Boo ...

  5. Spring Boot 2.x 启动全过程源码分析(全)

    上篇<Spring Boot 2.x 启动全过程源码分析(一)入口类剖析>我们分析了 Spring Boot 入口类 SpringApplication 的源码,并知道了其构造原理,这篇我 ...

  6. Mybatis源码分析第一天------Mybatis实用篇

    Mybatis源码分析第一天------Mybatis实用篇 一切最基本的操作就是参考官方文档:https://mybatis.org/mybatis-3/zh/configuration.html ...

  7. jdk、spring、mybatis、线程的源码分析

    基础篇 从为什么String=String谈到StringBuilder和StringBuffer Java语法糖1:可变长度参数以及foreach循环原理 Java语法糖2:自动装箱和自动拆箱 集合 ...

  8. 源码通透-mybatis源码分析以及整合spring过程

    源码通透-mybatis源码分析以及整合spring过程 mybatis源码分析版本:mybaits3 (3.5.0-SNAPSHOT) mybatis源码下载地址:https://github.co ...

  9. spring事务源码分析结合mybatis源码(二)

    让我们继续上篇,分析下如果有第二个调用进入的过程. 代码部分主要是下面这个: if (isExistingTransaction(transaction)) {return handleExistin ...

最新文章

  1. 记录EasyUI使用中的问题和解决的方法
  2. ObjectIOStream 对象流 ByteArrayIOStream 数组流 内存流 ZipOutputStream 压缩流
  3. 【UIKit】表格 UITableView
  4. 工具——Java后端开发中用到的一些工具(windows)
  5. 【PAT甲级 多项式相乘】1009 Product of Polynomials (25 分) C++ 全部AC
  6. c语言排序系统代码怎么写,排序概述(c语言)(示例代码)
  7. REVERSE-PRACTICE-BUUCTF-3
  8. Flask模板参数传值的方法
  9. python2.7.11 for iOS 苹果上的python27环境
  10. Matlab保存imagesc函数没有缩放的伪彩图
  11. Shopee菲律宾站如何选品?听Shopee Man本土多店管理系统告诉你
  12. 网络嗅探器(影音神探) v4.63 绿色正式版
  13. 基于SSM实现个性化健康饮食推荐系统
  14. Effective Java 2.0_中英文对照_Item 7
  15. DirectX是什么
  16. html5如何快速根据psd,微页h5制作工具怎么快速导入PSD源文件?
  17. 我的身体为什以会这样?如何诊治?
  18. 性能测试中的服务器数据监控
  19. 常用dns114.114.114.114与8.8.8.8的区别
  20. 如何使用Socks5代理IP加密Windows网络数据传输

热门文章

  1. 面试官:AtomicInteger是如何保证线程安全?
  2. @Autowired报错的4种解决方案和原因分析!
  3. 面经分享:历时半个月,终于拿到了蚂蚁金服的offer!
  4. C# Winform 窗体美化(五、鼠标穿透)
  5. jsp中redirect和forward的区别
  6. 没有已启用的仓库。 执行 “yum repolist all“ 查看您拥有的仓库。
  7. n个小球放入m个盒子中_飞么盒子卫生巾自助售卖机前景
  8. java实现extended smtp_java实现发送邮件(SMTP)
  9. vasp和ms_科学网—VASP如何计算铁磁和考虑强关联作用 - 叶小球的博文
  10. oracle 监听拒绝连接,报mybatis映射文件错误Listener refused the connection with the following error: ORA-12519, TNS