前言
Spring无论在Java生态系统,还是在就业市场,是绝对的王者。大厂面试出镜率之高,投产规模之广,无出其右。随着技术的发展,Spring 从往日的 IoC 框架,已发展成 Cloud Native 基础设施,衍生出大量 Spring 技术栈,如大家熟知的 Spring Boot、Spring Cloud 和 Spring Security 等。
我相信很多程序员不管是在面试中,还是在日常开发中,总会面临各种挑战和考验,唯有系统性地掌握 Spring编程思想、设计理念,以及具体的实现方式,方可游刃有余,以免进退失据。
作为 Spring 技术生态的基石,Spring无论在设计,还是在实现上,都是一个优秀的框架,许多细节方面是非常值得我们学习的。那么,花费10分钟,由阿里一线架构师,带你梳理Spring框架相关知识!
以下所整理的Spring相关面试题(含答案)、Spring全家桶实战文档,均可以免费分享
首先上张Spring的体系脑图:
Spring脑图可以说是我所有描绘脑图中最详细没有之一,可见它的用处之广!
一、分布式架构学习路线图
据统计,人的阅读时间在20分钟以内是能够达到全身心投入的,顾文章单张篇幅以后会尽量缩短,但更新会尽量相应频繁一些。
二、计算机软件发展历史
首先我们了解下计算机软件的发展历史,大概总结概括,分为c/s时代,web1.0时代和web2.0时代。
**c/s时代:**富客户端方案。卖软件可赚钱。例如 qq、影音、游戏。
**1.0时代:**主要是单向信息的发布,即信息门户—广大浏览器客户端 ,互联网内容是由少数编辑人员(或站长)定制的。
表是三大门户,新浪/网易/搜狐。新浪以新闻+广告为主,网易拓展游戏为主,搜狐延伸门户矩阵
**2.0时代:**注重用户的交互。每个人都是内容的供稿者。 RSS订阅扮演一个很重要的作用。
例如:博客、播客、维基、P2P下载、社区、分享服务
时至今日,互联网的形式演变已经变成全员参与,老少皆宜的活动。因此,互联网相关的技术也是要求越来越高,参与人数的增加也让系统的负担越来越大。
三、技术架构演进史
以下为2017年天猫双11的交易指标。那么大的数据量,那么快的处理请求,显然单台机器,单个服务绝对是无法支撑的。
那么怎么办呢,我们将原本单台部署,单台处理的服务,需要进行拆分以及部署到不同的服务器中去,使其用多台机器去处理,分担压力。但是我们又要保证系统的完整性。这就是分布式的设计。接下来我们看下服务架构的演进史。
架构演进一: 早期雏形
特征:应用程序主要做静态文件读取,返回内容给浏览器。
**架构演进二: **数据库开发(LAMP特长)
特征:应用程序主要主要读取数据表值,填充html模块。业务逻辑简单,写sql
架构演进三: javaweb的雏形
特征:tomcat + servlet + jsp + mysql。一个war包打天下
项目结构:ssh/ssm三层结构。
架构演进四: javaweb的集群发展
特征:硬件机器的横向复制,对整个项目结构无影响。
架构演进五: javaweb的分布式发展
特征:将Service层单独分离出去,成为一个单独的项目jar。单独运行。Web服务器通过rpc框架,对分离出去的service进行调用。