【Java开发】使用 Spring Boot 的优缺点

Chinese, Simplified

Pros and cons of using spring boot

介绍


由于附加功能的建立,Spring 框架的结构在过去几年中变得明显更加复杂。现在,开始一个新的 Spring 项目需要一个漫长的设置过程。 Spring Boot 的发明是为了节省时间并避免在每个新项目中从头开始配置这个框架。

什么是 Spring 框架


Spring 是用于开发企业应用程序的最广泛使用的框架之一,它提供了健壮的编程和配置模型。这个框架的创建是为了简化 Oracle 流行的 Java EE 技术堆栈上的应用程序开发,当时该技术非常复杂且难以使用。

与其他框架不同,Spring 专注于应用程序功能的几个领域,并为它们提供了广泛的附加功能。

Spring Framework 的主要优点之一是它使用了依赖注入模式。 DI 使实现应用程序所需的功能变得更加容易,并允许开发松散耦合、更通用的类。

Spring框架的优点

Advantages of Spring Framework

让我们看一下 Spring Framework 的一些优点:

Spring Framework 可用于 Web 应用程序开发中使用的所有架构层;

  • 编写类时使用非常轻量级的POJO模型;
  • 允许您自由链接模块并轻松测试它们;
  • 支持声明式编程;
  • 消除了独立创建工厂和单例类的需要;
  • 支持多种配置方式;
  • 提供中间件级别的服务。

尽管 Spring Framework 有许多优点,但配置它所涉及的冗长准备过程促成了 Spring Boot 的创建。

用于应用程序开发的 Spring Boot


尽管 Spring Framework 具有优势,但作者决定为开发人员提供一些实用程序,这些实用程序可以自动执行配置过程并加快创建和部署 Spring 应用程序的过程。这些实用程序以 Spring Boot 的通用名称组合在一起。

虽然 Spring Framework 专注于提供灵活性,但 Spring Boot 旨在减少代码长度并简化 Web 应用程序开发。通过利用注释和样板配置,Spring Boot 减少了开发应用程序所需的时间。此功能可帮助您以较少或几乎没有配置开销创建独立应用程序。

易于依赖管理


为了加快依赖管理过程,Spring Boot 为每类基于 Spring 的应用程序隐式打包所需的第三方依赖,并通过所谓的启动包(spring-boot-starter-web、spring-boot-starter-数据-jpa 等)。

入门包是可以包含在应用程序中的方便依赖描述符的集合。它们允许您获得所有 Spring 相关技术的通用解决方案,无需搜索代码示例并从中加载所需的依赖项描述符。

例如,如果您想开始使用 Spring Data JPA 访问您的数据库,只需在项目中包含 spring-boot-starter-data-jpa 依赖项即可完成(无需寻找兼容的 Hibernate 数据库驱动程序和图书馆)。

如果你想创建一个 Spring Web 应用,只需要添加 spring-boot-starter-web 依赖,它会将开发 Spring MVC 应用所需的所有库拉到你的项目中,例如 spring-webmvc、jackson-json、validation -api 和 Tomcat。

简而言之,Spring Boot 是用来做什么的,它收集所有常见的依赖项并将它们定义在一个地方,这使开发人员可以立即开始工作,而不是每次创建新应用程序时都重新发明轮子。

因此,在 Spring Boot 中使用时 pom.xml 文件包含的行数比在常规 Spring 中少得多。

自动配置


Spring Boot 的优点之一,值得一提的是应用程序的自动配置。

选择合适的启动包后,Spring Boot 将尝试根据您添加的 jar 依赖项自动配置您的 Spring 应用程序。例如,如果添加 Spring-boot-starter-web,Spring Boot 会自动配置已注册的 bean,例如 DispatcherServlet、ResourceHandlers 和 MessageSource。

如果您使用的是 spring-boot-starter-jdbc,Spring Boot 会自动注册 DataSource、EntityManagerFactory 和 TransactionManager bean,并从 application.properties 文件中读取数据库连接信息。如果您不打算使用数据库并且不提供任何有关手动连接的详细信息,Spring Boot 将自动在内存中配置数据库,而无需您进行任何额外配置(如果您有 H2 或 HSQL 库)。使用用户首选项可以随时完全覆盖自动配置。

对应用服务器的原生支持——Servlet 容器


每个 Spring Boot 应用程序都包含一个嵌入式 Web 服务器。开发人员不再需要担心设置 servlet 容器并将应用程序部署到其中。应用程序现在可以使用内置服务器将自身作为可执行 jar 文件运行。如果您需要使用单独的 HTTP 服务器,只需排除默认依赖项即可。 Spring Boot 为不同的 HTTP 服务器提供了单独的启动包。

使用嵌入式服务器构建独立的 Web 应用程序,不仅方便开发,而且是企业级应用程序的有效解决方案;更重要的是,它在微服务领域变得越来越有用。将整个服务(例如用户身份验证)快速打​​包到独立且完全可部署的工件中的能力,该工件还提供 API,这使得安装和部署应用程序变得更加容易。

Spring Boot 是下一代工具的一部分,可简化 Spring 应用程序的配置过程。它不是自动生成代码的工具,而是项目构建自动化系统的插件(支持 Maven 和 Gradle)。

该插件提供了测试和部署 Spring 应用程序的功能。 mvn spring-boot:run 命令在端口 8080 上运行您的应用程序。此外,Spring Boot 允许您将应用程序打包到一个单独的 jar 文件中,并嵌入完整的 Tomcat 容器。这种方法是从 Play 框架的应用程序部署模型中借用的(不过,Spring Boot 也可以创建传统的 war 文件)。

Spring Boot 的主要优势之一是基于类路径的内容配置资源。当涉及到默认配置时,Spring Boot 非常直观。您可能并不总是同意它的设置选择,但至少它会为您提供一个工作模块。这是一种非常有用的方法,尤其是对于新手开发人员,他们可以从默认设置开始并在他们以后探索替代方案时对其进行更改。这比每次开始一个新项目时回答一堆难题要好得多。此外,Spring Boot 的官方网页上还有许多成熟的教程。这些将帮助您在初始阶段快速理解并实际实施所有主要类型的项目。

Spring Boot 还处于起步阶段,自然要经过多次蜕变才能完全稳定。用它来构建严肃的系统可能还为时过早,但它非常适合执行各种个人、培训和测试项目,以防你想消除大量无关的非生产性日常工作创造有用的功能。

就 Spring Boot 成长为一个严肃的开发工具的潜力而言,可接受的技术文档的存在看起来非常令人鼓舞。

现在让我们仔细看看使用 Spring Boot 的优缺点。

Spring Boot 应用程序的优点

Advantages of a Spring Boot application

Spring Boot 旨在使 Spring Framework 更易于使用。 Spring 提供了一个松散耦合的应用程序,这本身就是一个很棒的特性。然而,当涉及到几个松散耦合的块时,跟踪它们就变成了一项乏味且吃力不讨好的任务。这就是 Spring Boot 的用武之地,它通过以下功能帮助您保持简单:

  • 快速轻松地开发基于 Spring 的应用程序;
  • 无需部署war文件;
  • 创建独立应用程序的能力;
  • 帮助将 Tomcat、Jetty 或 Undertow 直接嵌入到应用程序中;
  • 无需XML配置;
  • 减少源代码数量;
  • 额外的开箱即用功能;
  • 轻松启动;
  • 简单的设置和管理;
  • 大型社区和许多培训计划,以促进熟悉期。

借助自动配置等功能,Spring Boot 为您省去了编码和不必要配置的麻烦。 Spring 框架不仅为您提供依赖注入或事务处理等功能,它还充当其他 Spring 框架的基础。最好的例子是 Spring Boot。 Spring Boot 使用 Spring Framework 作为其基础。它简化了 Spring 依赖项并直接从命令行运行应用程序。它也不需要外部应用程序容器。 Spring Boot 有助于在外部控制和自定义应用程序组件。

Spring Boot 的缺点

Disadvantages of Spring Boot

尽管 Spring Boot 有很多优点,但它仍然有一些缺点需要牢记:

  • 缺乏控制。 Spring Boot 会创建大量未使用的依赖项,导致部署文件很大;
  • 将遗留或现有 Spring 项目转换为 Spring Boot 应用程序的复杂且耗时的过程;
  • 不适合大型项目。 尽管它非常适合使用微服务,但许多开发人员声称 Spring Boot 不适合构建单体应用程序。

原文:https://bambooagile.eu/insights/pros-and-cons-of-using-spring-boot/

本文:https://jiagoushi.pro/pros-and-cons-using-spring-boot

SEO Title
Pros and Cons of Using Spring Boot