全面了解一下Spring

261 阅读2分钟

前言

对于Java技术栈来说,特别是WEB开发,Spring的地位之高是毋庸置疑的。一直都有系统学习Spring的计划,但大多时候都停留在想法上,现在终于下定决心来系统的学习一下。曾几何时,Spring还只是IOC、依赖注入的“小”框架,发展到现在已经成为Spring“全家桶”了。得益于Spring的强大生态,Spring不再局限于WEB开发,其Slogan也随之演进为:
Spring makes Java simple. Spring makes Java modern. Spring makes Java productive. Spring makes Java reactive. Spring makes Java cloud-read.

Spring能做什么?

![](https://pic3.zhimg.com/v2-d4a44110fad2d7cc04c6e6571b3a92a6_b.png)

Microservices

当前,微服务的架构风格无疑已经成为一种“新常态”。微服务为应用的弹性扩展、职责隔离、独立开发、独立部署提供了更多的便利。 对于Java技术栈,Spring Boot几乎是构建微服务的首选,可以说是Java微服务框架的事实标准。虽然我从来不认可Spring Boot是微服务框架这种说法,因为它并不是限制仅能使用于微服务架构。
![](https://pic2.zhimg.com/v2-0f4b91e4d20a9d8d69c35b7447c33e15_b.png)

Reactive

响应式编程可用于构建异步、非阻塞的企业级应用,对于低延迟、高吞吐量的应用是一个理想的选择,因为响应式编程更能够充分利用现代处理器和多核处理器,特别是对于IO密集型的应用尤其适用。可用更少的微服务实例来支撑更多的并发用户。当然构建响应式企业应用还有其他技术栈可供选择,比如Nodejs,但对于Java技术栈,使用Spring是一种不错的选择。
Spring提供两套不同的技术栈来分别对应响应式和Servlet。
![](https://pic3.zhimg.com/v2-98a0a5841db2841dd551eed99e999ca2_b.png)
当然,使用响应式会带来一些编程思想和风格的转变,也会带来一些学习成本的增加。

Cloud

构建一个分布式系统并非易事,Spring Cloud提供了诸如配置管理、服务发现、API网关等分布式系统的必要组件。
![](https://pic3.zhimg.com/v2-1c909180c3297742b12cec2e97b38ef2_b.png)

Web Applications

毋庸置疑,Spring从一开始出现就在致力于WEB应用的开发,更快、更容易的构建WEB应用,减少样板代码,减少配置,Spring Boot更是为此而生。

Serverless

Serverless借助于云计算的东风,使得应用开发者不必再关心繁杂的服务器基础设施,而是关注于业务逻辑的开发。特别是对于事件驱动的架构更是Serverless的主战场,Spring Cloud Function提供了适配器,可以在主流云计算平台上支持Serverless功能,比如AWS Lambda, Azure等。
![](https://pic2.zhimg.com/v2-0b2fd530b75d37edd18814831a26f201_b.png)