这是我参与11月更文挑战的第12天,活动详情查看:2021最后一次更文挑战
Spring Boot如何出现?
在我们经历过java web开发的过程后,我们知道开发一个web应用,从最开始的Servlet结合Tomcat,运行一个Hello World程序,需要经历很多步骤,而为了简化这些步骤出现了SSH和SSM等框架,接着又出现了Spring Boot框架。
所有的技术框架的发展都遵循一条主线规律:从一个复杂应用场景衍生一种规范框架,人们只需要进行各种配置而不需要自己去实现,这时候强大的配置功能成为了优点。发展到一定程度上,再根据实际生产应用情况,选取其中实用功能合设计精华,重构出一些轻量级框架,来提高开发效率,嫌弃原有的各类配置过于麻烦,于是开始提倡约定大于配置,进而衍生出一些一站式解决方案。这就是Java企业级应用 -> J2EE -> Spring ->Spring Boot的过程。
随着Spring的发展,新功能和领域的增加,Spring变得越来越复杂,需要整合各种各样的文件,慢慢的不是那么易用,就有Privotal团队在Spring的基础上提供了一套全新的开源框架SpirngBoot,其目的就是为了简化Spring应用搭建和开发过程,更容易的集成各种常用的中间件、开源软件。
Spring Boot基于Spring开发,Spring Boot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。Spring Boot以约定大于配置的核心思想,默认帮我们进行了很多设置,多数Spring Boot应用只需要很少的Spring配置。同时集成了大量常用的第三方库配置(例如:Redis、Jpa、RabbitMQ等等),Spring Boot应用中的这些第三方库几乎可以零配置的开箱即用。
简单来说:Spring Boot其实并不是什么新的框架,它默认了很多框架的使用方式,就像Maven整合了所有的jar包,Spring Boot整合了所有的框架。
Spring Boot 的特点
1. 独立运行的 Spring 项目
Spring Boot 可以以 jar 包的形式独立运行,Spring Boot 项目只需通过命令java–jar xx.jar” 即可运行。
2. 内嵌 Servlet 容器
Spring Boot 使用嵌入式的 Servlet 容器(例如 Tomcat、Jetty 或者 Undertow 等),应用无需打成 war 包 。
3. 提供 starter 简化 Maven 配置
Spring Boot 提供了一系列的starter项目对象模型(pom)来简化 Maven 配置。
4. 提供了大量的自动配置
Spring Boot 提供了大量的默认自动配置,来简化项目的开发,开发人员也通过配置文件修改默认配置。
5. 自带应用监控
Spring Boot 可以对正在运行的项目提供监控。
6. 无代码生成和 xml 配置
Spring Boot 不需要任何 xml 配置即可实现 Spring 的所有配置。