【问题标题】:How does SpringBoot decrease boiler plate code?Spring Boot 如何减少样板代码?
【发布时间】:2021-01-28 16:55:13
【问题描述】:

我了解 SpringBoot 如何在其他方面节省时间,例如拥有嵌入式服务器和启动器依赖项,但 SpringBoot 如何减少应用程序所需的样板代码?

谢谢

【问题讨论】:

  • 主要通过注释和自动装配

标签: java spring spring-boot boilerplate


【解决方案1】:

Spring Boot 带来了大量的自动配置类,这些类创建具有默认配置的 bean,而这些默认配置原本是由开发人员自己创建的。一个例子是用于数据库访问的 bean。您可能已经创建了一个数据源,可能是一个 JdbcTemplate、连接池等。现在这些 bean 是使用自动配置创建的(例如:https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceAutoConfiguration.java),并且可以通过 application.properties 文件自定义配置。

【讨论】:

    【解决方案2】:

    Spring boot 自带启动器,通过 maven 可以搜索到所需的依赖项并将其添加到项目中,它支持快速开发,以下是 spring boot 的一些关键特性

    • 通过嵌入 Web 删除应用程序设置的样板代码 服务器(Tomcat)和内存数据库。
    • 应用程序上下文的自动配置。
    • 自动 servlet 映射。
    • 嵌入式数据库支持(h2)
    • 自动控制器映射

    【讨论】:

      【解决方案3】:

      当您使用注解 @SpringBootAplicaiton 时,Spring boot 会负责创建运行 WebServer 所需的所有 bean,并使用其依赖注入功能注入它。 @SPringBootApplicaiton单独相当于下面三个注解。

      1. @Configuration :您可以定义自己的配置类来在应用程序上下文中注册您的 bean。

      2.@EnableAutoConfiguration:Spring 使用此功能自动在您的类路径上创建可用的 bean。更多详细信息可在here 获得。

      1. @ComponentScan :扫描您的应用程序类所在的当前和基础包。

      它创建ApplicationContext,其中包含所有必要的bean,ServletWebServerApplicationContext就是这样一个bean,它通过在@987654333中寻找ServletWebServerFactory bean(提供webServer)来负责初始化和运行WebServer @.
      幕后还有很多事情要做。这是一个详细解释它的视频。

      https://youtu.be/uCE3x4-GQ0k

      https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/web/servlet/context/ServletWebServerApplicationContext.html

      【讨论】:

        【解决方案4】:

        您可以将 Spring Boot 视为 Spring 的自以为是的发行版。它带有健全的默认值和机制来隐藏样板,同时仍然可以更改这些默认值。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-18
          • 1970-01-01
          • 2020-06-12
          • 2021-09-14
          • 2019-09-30
          • 2021-11-03
          相关资源
          最近更新 更多