前言
自通信需求后,引发了我的很多思考让我体会到了知识点是相辅相成,相互联系的,只有对知识点有正确的认知,建立一个知识体系网,才能更好的学习与融会贯通,少走弯路。所以我打算整理一下知识点之间的联系,制定一个学习路线。
个人理解(可能有理解上的偏差)
socket是网络的基础
http是基于socket的一种通讯协议
tomcat内部由Connector连接器(就是一个http服务端:处理http请求,返回http响应)+servlet容器(找到url与servlet映射关系),连接这两层使用了适配器模式,将不同类型的request->servletrequest,至于java文件是如何被编译如何被执行的,是靠Loader模块,并且tomcat与java项目共享同一JVM资源(需要了解JVM,我目前理解:tomcat与Java项目在JVM中所属同一片内存资源,即可以看作是一个项目,tomcat与Java项目可以互相调用)
spring核心:IOC(控制反转,由spring管理bean),AOP(切面编程)
springMVC基于spring又依赖于tomcat
springboot是springMVC的升级优化
springCloud基于springboot
在理解框架的时候重点关注一些难点的实现方式与解决方案,以及框架中用到的设计模式,(学习框架就是为了学习编程思想)可以试着自己写写比较关注的某个点(比如spring的注解是怎样实现的,三级缓存是怎样的一个设计思路,为了解决什么问题?)
为什么要重点分析tomact?因为我现在就处在这个位置,目前正在写一个简陋版tomcat,希望通过对他的解读让自己获得成长,从代码编写规范,编程思想与设计模式中领悟一二。
短期学习路线
tomcat->JVM->spring->springMVC->springBoot->springCloud
总结
通过以上框架中学习:代码编写规范,编程思想与设计模式等,也是对java基础的加深。因为学习是一个循序渐进的过程,有些设计可能以我现在的高度还不能完全理解设计者的想法,所以我会选择性的略过一些点,等到日后知识体系更完善了,再来参悟其中的奥义,毕竟想一口吃成胖子是不现实的。