Spring Boot
在了解 Spring Boot
之前,我们应该先了解一下 什么是 Spring
, 因为是 Spring Boot
是 Spring
简化配置。
什么是 Spring
Spring
是 一个开源框架,2003年 火起来的一个 轻量级
Java
开发框架。
作者:Rod Johnson.
Spring 是为了解决企业级应用开发的复杂性而创建的,简化开发。
Spring 是 如何简化开发的
- 基于
POJO
的轻量级和最小侵入性编程。 - 通过
IOC
, 依赖注入(DI) 和 面向接口实现松耦合。 - 基于切面 (AOP) 和 惯例进行声明式编程。
- 通过切面和模板减少样式代码。
什么是Spring Boot
Spring Boot
是简化 Spring
应用开发,约定大于配置。
Spring Boot
是由Pivotal
团队打造的,并在2014年发布的一个全新框架,其设计目标就是用来简化Spring应用的搭建、开发及部署。Spring Boot采用了特定的方式进行配置,从而达到使开发人员不在需要配置繁琐的xml文件。简单的说其实Spring Boot并不是什么新的框架,就是摒弃了xml的配置方式,使用了一种新的配置方式;然后在maven中使用starter的方式整合了很多第三方框架,同时提供了很多默认的配置参数。
Spring Boot主要特点
- 可以快速的搭建一个
Spring
项目 - 默认使用
嵌入式 的 Servlet
容器,应用无需打成WAR
包 - 有很多
starters
自动依赖和版本控制 的 启动器。 [ 类似于npm 依赖包
] - 自动化配置,简化开发,可以配置修改默认值
- 无需配置
XML
,无代码生成,开箱即用。 - 生产环境的运行应用监控
- 与云计算的集成
主要简化配置,构建项目快,入门门槛低
微服务
什么是微服务
微服务是一种 架构风格
, 它要求我们在开发一个应用时,将这个应用构建成一系列小服务的组合,客套通过 HTTP
的方式进行互通。
微服务架构 就是 打破之前 单体架构all in one), 把每个功能元素独立处理。把独立出来的功能元素动态组合,需要的功能元素才拿来组合,需要多一些时可以整合多个功能元素。 微服务架构是对功能元素进行复制,而没有对整个应用进行复制。
采用微服务架构开发的系统,每一个独立的业务单元被划分为一个单独的模块,而每一个模块可以被独立的部署在服务器中,提供相应的业务服务。最终所有模块提供的服务组合在一起,就可以形成一套完整的业务流程,成为一个系统。
微服务架构主要特点
它主要解决了单体架构中存在的问题。
模块之间相互独立,通过接口完成模块间的通信,有效降低了代码的耦合度。在开发新增的业务功能时,你只需要从代码库中下载你需要的模块,并不需要下载所有的代码,开发和测试将会更加简单,并且新功能不会对原有的系统产生任何影响,系统的可扩展性得到了有效地提升。
- 节省了调用资源
- 每个功能元素的服务都是一个可替换的、可独立升级的
什么是单体架构?
单体架构比较初级,典型的三级架构,前端(Web/手机端)+中间业务逻辑层+数据库层。
所有功能都部署在同一个服务器中的系统,采用的架构就是单体架构。
单体架构的主要特点
优点
- 部署 / 测试 容易
- 开发简单,集中式管理
- 功能都在本地,没有分布式的管理和调用消耗
缺点
- 复杂性高
复杂性高,当项目迭代时间长,模块代码会变臃肿,耦合度高,难以维护
- 扩展能力受限
体应用只能作为一个整体进行扩展,无法根据业务模块的需要进行伸缩。
- 稳定性差
一个微小的问题,都可能导致整个应用挂掉
- 不灵活
构建时间长,任何小修改都要重构整个项目,耗时
- 效率低
开发都在同一个项目改代码,相互等待,冲突不断