专栏首页村雨遥Spring Boot 到底是个啥?

Spring Boot 到底是个啥?

目录

  • 1. Spring
  • 2. Spring Boot
    • 2.1 定义
    • 2.2 为什么需要 Spring Boot
    • 2.3 特点
    • 2.4 重要策略
    • 2.5 Spring Boot 的优缺点

1. Spring

Spring 是重量级企业开发框架 EJB(Enterprise JavaBean) 的替代品,是为了解决企业级应用开发的复杂性而创建的,简化开发。通过 依赖注入(DI)面向切面编程,用简单的 Java 对象(POJOPlain Old Java Object 实现 EJB 的功能,其组件代码轻量,但是配置很繁琐(需要大量 XML 配置)Spring 2.5 引入基于注解的组件扫描,Spring 3.0 引入基于 Java 的配置,可以代替 XML,虽然引入的特性大大提高了配置的效率,但是也无法避免,针对这一问题,Spring Boot 应运而生;

2. Spring Boot

2.1 定义

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”...Most Spring Boot applications need very little Spring configuration.

上面的一段话来自 Spring 官方,即“Spring Boot 能够轻松创建基于 Spring 的独立的生产级别的应用程序,而只需要通过 “just run (可能是 java -jar、tomcat、maven、shell、'Application' 等)”就可以让项目跑起来,大多 Spring Boot 项目仅需少量配置即可运行”。

Spring Boot 基于 Spring 开发,Spirng Boot 本身并不提供 Spring 框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。也就是说,它并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。Spring Boot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。同时它集成了大量常用的第三方库配置(例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz 等等)。

2.2 为什么需要 Spring Boot

Spring 框架能够让 J2EE企业应用程序开发更加简化,但是还是需要配置大量文件,针对这一问题,Spring Boot 能够进一步简化 Spring 框架,使得开发更为高效;

2.3 特点

  • 可以创建独立 Spring 应用程序,并且基于 MavenGradle 插件,可以创建可执行的 JARsWARs
  • 内嵌 TomcatJettyServlet 容器;
  • 提供自动配置的 started 项目对象模型(POMS)以简化 Maven 配置;
  • 尽可能自动配置 Spring 容器;
  • 提供准备好的特性,如指标、健康检查和外部化配置;
  • 没有冗余代码生成,不需要 XML 配置;

2.4 重要策略

  • 开箱即用Outofbox,指在开发过程中,通过在 Maven 项目的 pom 文件中添加相关依赖包,然后使用对应注解来代替繁琐的 XML 配置文件以管理对象的生命周期。这一特点使得开发人员摆脱了复杂的配置工作以及相关依赖的管理工作,更加专注于业务逻辑;
  • 约定优于配置Convention over configuration,一种由 SpringBoot 本身来配置目标结构,由开发者在结构中添加信息的软件设计范式。这一特点虽然降低了部分灵活性,增加了 BUG 定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量 XML 配置,而且可以将代码编译、测试和打包等工作自动化;

2.5 Spring Boot 的优缺点

2.5.1 优点

  1. 使得开发基于 Spring 的应用程序变得简单;
  2. Spring Boot 项目开发所需时间明显减少,提高整体生产力;
  3. 无需编写大量样板代码、XML 配置和注释;
  4. Spring 生态系统更加容易集成,如 Spring JDBC、Spring ORM、Spring Data、Spring Security
  5. 遵循默认配置,我们通过修改默认配置能够减少开发工作;
  6. 提供嵌入式 http 服务器,方便开发测试 web 应用程序;
  7. 提供命令行接口(CLI)工具,用于开发测试 Spring Boot 应用程序;
  8. 提供多种插件,能使用内置工具(Maven & Gradle)开发测试 Spring Boot 应用程序;

2.5.2 缺点

  1. 相关文档资料较少;
  2. 版本迭代快,导致各版本间的模块改动可能很大;

本文分享自微信公众号 - 村雨遥(cunyu1943),作者:村雨遥

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring 简介,带你打开 Spring 的大门

    Spring 其实是一个很大的范围概称,包含着许多分支,在正式了解 Spring 之前,我们先来看看 Spring 家族中的主要分支:

    村雨遥
  • 什么是 Spring MVC?

    Spring MVC 是一个用于构建 Web 应用程序的 Java 框架,遵循 模型 - 视图 - 控制器 设计模式。它实现了一个 Spring 核心框架的所有...

    村雨遥
  • Spring 中的自动装配

    自动装配指使用 Spring 满足 Bean 依赖的一种方法,Spring 会在应用上下文中为某个 Bean 寻找其依赖的 Bean,主要有三种装配机制:

    村雨遥
  • 深入浅出,Spring 框架和 Spring Boot 的故事

    Spring 框架可以说是 Java 开发人员使用的最流行的应用程序开发框架之一。它目前由大量提供一系列服务的模块组成。包括模块容器,为构建横切关注点提供支持的...

    芋道源码
  • [译]2020年Spring状态报告

    近日VMware发布了2020年Spring状态报告,该报告调查了1000多位不同行业的springboot开发者、架构师、技术经理,以了解企业当前如何使用Sp...

    东溪陈姓少年
  • Spring实战(第4版)

    第4版针对Spring 4进行了全面更新。全书分为四部分。第1部分介绍Spring框架的核心知识。第二部分在此基础上介绍了如何使用Spring构建Web应用程序...

    用户3157710
  • 为什么说 Java 程序员必须掌握 Spring Boot ?

    Spring Boot 对测试的支持不可谓不强大,Spring Boot 内置了7种强大的测试框架:

    美的让人心动
  • 从零学习Spring(一)

    今天我们便踏上Spring框架的学习之路,熟悉此公众号的读者知道,公众号正在连载关于MyBatis,Spring MVC,Spring Boot框架的教程。如果...

    用户1093975
  • Spring,Spring MVC及Spring Boot区别

    我们说到Spring,一般指代的是Spring Framework,它是一个开源的应用程序框架,提供了一个简易的开发方式,通过这种开发方式,将避免那些可能致使代...

    用户7286770
  • 面试中问的话题Spring工作原理

    Spring工作原理 内部最核心的就是IOC了, 动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射 反射其实就是在...

    哲洛不闹

扫码关注云+社区

领取腾讯云代金券