【Spring学习】Spring的源码解析之路
缘起:=====》》》》
在项目中实际上是用到了Spring的内容,只是直接用的SpringBoot,不管是Eclipse中还是在Intellig IDEA中,应该都比较容易能够直接建立起项目,默认配置也就都有了,基于此增加存储、处理逻辑以及展示等的模块,并且抽取出公共模块,项目最终能够完整完善的运行,在此过程中经历了N多次的项目需求的变更,发现自己写了一些比较废弃的类,并且对设计模式的掌握不够清晰,无法很好的指导自己,也无法设计出一个更好的项目架构,开始心存疑惑如何能够更好提高?当下这种不断丰富起来的快速包装上手的方式,对技术人员来说,用起来是很方便了,但也会让大家陷入到不断的外扩宽度上有明显的了解,确实能够很快找到解决方案并且得到有效结果,但实际深度上并没有一个特别明显的提高,导致扎不下去,因为底层理解不深入导致无法站在一个更高的角度上看问题,没有方法论的指导在很多情况下显得格外惨烈,基于此想要将地基打得更牢。
综上所述,所处阶段基于个人理解处在 ——》 现在是不理解导致可能用了一些例如设计模式或者方法论等但是不自知;第二阶段:要理解清楚底层和细节,从分析源码开始,建立起自己的认知和架构方式,知其然知其所以然;第三阶段,建立起水平横向维度和纵向深度维度,关联性也都建立起来之后,融会贯通,以无意识的方式指导自己的项目架构设计
笔落:=====》》》》
后续会以专题系列的形式持续更新博客,会结合官网内容以及参考一些网上的大神所写内容,如有参考或者有摘录引用,均会标注引用出处,若有未及时标注的,请与博客下方留言私信即可
细探:=====》》》》
该系列是以Spring为主线的,会从几个部分进行更新:
一、基础环境配置:包括Spring源码下载和Intellig IDEA的使用;Intellig IDEA的快捷键使用总结
二、基础项目创建:SpringMVC的一个基础项目的创建,包含项目创建过程,以及配置等的含义,SpringMVC的框架原理及运行机制(看官方文档,自己画图,并且通过单步调试进行步骤确认)
三、从框架原理和运行机制,看源码(从SpringIOC、DI源码进行分析过程,关注xml和注解的不同处理方式,梳理清楚整个过程,手写Spring的IOC过程并对比源码理解清楚源码)
四、源码中用到的设计模式:对应到三中,并且加入自己的理解,实现一些class并运行
五、后续持续更新…
回顾:=====》》》》
在此过程中会不断回顾内容,保证不跑偏不懈怠,也可能出现内容的调整等;各位博友在看到内容时若有困惑,可以及时私信留言一起探讨,后续也会增加其他渠道的更新,另外,博文转发请标注出处
【Spring学习】Spring的源码解析之路的更多相关文章
- 【Spring】Spring IOC原理及源码解析之scope=request、session
一.容器 1. 容器 抛出一个议点:BeanFactory是IOC容器,而ApplicationContex则是Spring容器. 什么是容器?Collection和Container这两个单词都有存 ...
- Spring Boot系列(三):Spring Boot整合Mybatis源码解析
一.Mybatis回顾 1.MyBatis介绍 Mybatis是一个半ORM框架,它使用简单的 XML 或注解用于配置和原始映射,将接口和Java的POJOs(普通的Java 对象)映射成数据库中的记 ...
- Spring Boot @Enable*注解源码解析及自定义@Enable*
Spring Boot 一个重要的特点就是自动配置,约定大于配置,几乎所有组件使用其本身约定好的默认配置就可以使用,大大减轻配置的麻烦.其实现自动配置一个方式就是使用@Enable*注解,见其名知 ...
- 深入学习 esp8266 wifimanager源码解析(打造专属自己的web配网)
QQ技术互动交流群:ESP8266&32 物联网开发 群号622368884,不喜勿喷 单片机菜鸟博哥CSDN 1.前言 废话少说,本篇博文的目的就是深入学习 WifiManager 这个gi ...
- spring cloud深入学习(四)-----eureka源码解析、ribbon解析、声明式调用feign
基本概念 1.Registe 一一服务注册当eureka Client向Eureka Server注册时,Eureka Client提供自身的元数据,比如IP地址.端口.运行状况指标的Uri.主页地址 ...
- 【Spring学习】Spring的源码解析之路 ——【step1】基础环境配置 + IDEA快捷键整理
前导: 本次主要是关于“基础环境搭建”的内容,分为三个部分,(1)查看源码和项目需要的开发集成环境Intellig IDEA的使用,(2)如何导入源码,(3)在这个过程中梳理出的快捷键 正文:==== ...
- Spring中AOP相关源码解析
前言 在Spring中AOP是我们使用的非常频繁的一个特性.通过AOP我们可以补足一些面向对象编程中不足或难以实现的部分. AOP 前置理论 首先在学习源码之前我们需要了解关于AOP的相关概念如切点切 ...
- Spring Boot自动配置源码解析(基于Spring Boot 2.0.2.RELEASE)
在Spring Boot官方介绍中,首一段话是这样的(如下图).我们可以大概了解到其所表达的含义:我们可以利用Spring Boot写很少的配置来创建一个非常方便的基于Spring整合第三方类库的单体 ...
- Spring Boot入门,源码解析
目录 1.Spring Boot简介 2.微服务 3.Spring Boot HelloWorld 3.1 创建一个Maven工程 3.2 导入依赖Spring Boot相关的依赖 3.3 编写一个主 ...
随机推荐
- 4、redis 分布式锁
1. 前言 关于分布式锁的实现,目前常用的方案有以下三类: 数据库乐观锁: 基于分布式缓存实现的锁服务,典型代表有 Redis 和基于 Redis 的 RedLock: 基于分布式一致性算法实现的锁服 ...
- CentOS 7修改系统时间及硬件时间
转载于:https://www.cnblogs.com/LouisZJ/p/8554991.html [root@nginx ~]# timedatectl --help timedatectl [O ...
- git push时报错refusing to merge unrelated histories
1. 删除本地项目中的.git目录,然后向远程仓库提交代码的时候,重新配置后再次提交.会有冲突. 解决方式: git remote add origin [//your giturl] git pul ...
- JavaScript数组方法--includes、indexOf、lastIndexOf
我们继续吧! includes:includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false.还是先看看includes的用法吧 var ar ...
- HDU1671 Phone List
Phone List Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Probl ...
- rsync:基本命令和用法
以下是rsync系列篇: 1.rsync(一):基本命令和用法 2.rsync(二):inotify+rsync详细说明和sersync 3.rsync算法原理和工作流程分析 4.rsync技术报告( ...
- 解决uni-app props 传递数组修改后不能使用问题
1.子组件页面结构 //NoticesMarquee 组件 <view v-for="(item, index) in tempList" :key="index& ...
- 搭建IntelliJ IDEA授权服务器
地址:https://blog.csdn.net/maozexijr/article/details/79072287 https://www.jianshu.com/p/754d8f907f2 ...
- leetcode966
class Solution(object): def spellchecker(self, wordlist: 'List[str]', queries: 'List[str]') -> 'L ...
- nodejs + express + express-session + redis
nodejs + express + express-session + redis 标题似乎又是不太对,大家领会精神哈 Express 安装express-generator,然后用它来创建一个工程 ...