若不是公司需要,我怎么会用上 Spring Boot ?

我从业于第三方支付和互联网金融这两个领域。在互联网金融公司工作期间,从零参与了公司技术平台建设。

随着公司业务不断发展,组织技术团队对平台进行过四次大架构升级,从最初单体架构发展到最后的微服务架构,我也从一个一线开发人员成长为互联网金融公司的技术负责人。

2016 年,也就是构建第四代平台架构的时候,我在技术调研时了解到了 Spring Boot,初步尝试使用后,被其简洁快速开发的魅力所吸引,随即推广到公司所有项目中。

为了促进自己和团队的学习,我开始在网络上连载了 Spring Boot 的系列学习文章,意外得到广大网友的认可。

2017 年我又从互联网金融回归到第三方支付行业,当时公司正在构建新一代的支付平台,技术栈和互金的第四代平台一样,采用的 Spring Boot + Spring Cloud 相关生态,有所不同的是支付行业所面临的业务更加复杂,交易规模更为庞大。

在互联网金融公司中第四代平台大概有二十多个微服务支撑平台,现在公司的新一代支付系统微服务项目六十多个,每个服务部署三个实例就高达一百多个;在互金行业只有在抢标的时候有大量的流量,一年交易二、三十亿,现在我就职的支付公司每天交易量就高达四、五十亿,对系统的稳定性和性能要求更高。

回到第三方支付行业后,我开始负责公司新一代平台的微服务架构实践,以及微服务架构下大数据平台建设。

经过两家公司对 Spring Boot 的使用,我越发认识到 Spring Boot 对传统开发带来的挑战,Spring Cloud 未来可能会随着 Kubernetes 和 Service Mesh 的发展有所弱化,但是 Spring Boot 给开发带来的影响是深远的。

恰逢今年 Spring Boot 2.X 被广泛的应用,可以预见的是未来的发展会越来越好。

如果你还没接触 Spring Boot 或者在应用中遇到或大或小的问题,可以看看下面的内容:

Spring Boot 是一套全新的框架,它来自于 Spring 大家族,因此 Spring 所有具备的功能它都有并且更容易使用;同时还简化了基于 Spring 的应用开发,通过少量的代码就能创建一个独立的、产品级别的 Spring 应用。

其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

它的核心设计思想是:约定优于配置,Spring Boot 所有开发细节都是依据此思想进行实现的。

下图展示出了 Spring Boot 在 Spring 生态中的位置:

640?wx_fmt=png

该项目主要的目的是:

  • 上手 Spring 开发更快、更广泛;

  • 使用默认方式实现快速开发;

  • 提供大多数项目所需的非功能特性,诸如:嵌入式服务器、安全、心跳检查、外部配置等。

为什么是 Spring Boot ?

Spring Boot 本身并不提供 Spring 框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。

同时它集成了大量常用的第三方库配置(如 Redis、MongoDB、JPA、RabbitMQ、Quartz 等),Spring Boot 应用中这些第三方库几乎可以零配置进行开箱即用,大部分的 Spring Boot 应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。

Spring Boot 主要特性

  • 使用 Spring 项目引导页面可以在几秒构建一个项目;

  • 方便对外输出各种形式的服务,如 REST API、WebSocket、Web、Streaming、Tasks;

  • 非常简洁的安全策略集成;

  • 支持关系数据库和非关系数据库;

  • 支持运行期内嵌容器,如 Tomcat、Jetty;

  • 强大的开发包,支持热启动;

  • 自动管理依赖;

  • 自带应用监控;

  • 支持各种 IDE,如 IntelliJ IDEA、NetBeans。

使用 Spring Boot 开发项目,有以下几方面优势:

  • Spring Boot 使开发变得简单,提供了丰富的解决方案,快速集成各种解决方案提升开发效率。

  • Spring Boot 使配置变得简单,提供了丰富的 Starters,集成主流开源产品往往只需要简单的配置即可。

  • Spring Boot 使部署变得简单,其本身内嵌启动容器,仅仅需要一个命令即可启动项目,结合 Jenkins、Docker 自动化运维非常容易实现。

  • Spring Boot 使监控变得简单,自带监控组件,使用 Actuator 轻松监控服务各项状态。

从软件发展的角度来讲,越简单的开发模式越流行,简单的开发模式解放出更多生产力,让开发人员可以避免将精力耗费在各种配置、语法所设置的门槛上,从而更专注于业务。这点上,Spring Boot 已尽可能地简化了应用开发的门槛。

至此,我把这些年学习应用 Spring Boot 的经验、和团队趟过的坑都集结在这门课程中,希望对想入手或正在入手的朋友有更多的帮助。

 

640?wx_fmt=jpeg

写在结尾

Spring Boot 所集成的技术栈,涵盖了各大互联网公司的主流技术,跟着 Spring Boot 的路线去学习,基本可以了解国内外互联网公司的技术特点。

Spring Boot 是一套快速开发框架,在微服务架构的大环境下 Spring Boot 一经推出就受到开源社区的追捧。

Spring Boot 有强大的生态整合能力,提供了众多的 Starters 包,非常方便 Spring Boot 集成第三方开源软件达到开箱即用的效果。

Spring Boot 和微服务架构都是未来软件开发的大趋势,越早参与,受益越大。

 

 

 

你可能感兴趣的:(架构,后端,GitChat技术杂谈)