SpringBoot 如何减少样板代码?

问题描述

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

谢谢

解决方法

Spring Boot 带来了大量的自动配置类,它们使用默认配置创建 bean,这些 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 文件自定义配置。

,

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

,

Spring Boot 自带 starters,您可以通过 Maven 搜索所需的依赖项并将其添加到您的项目中,它支持快速开发,以下是 Spring Boot 的一些关键特性

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

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

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

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

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

它创建 ApplicationContext 包含所有必需的 bean,ServletWebServerApplicationContext 就是这样一个创建的 bean,它负责通过查找 WebServer bean(在 ServletWebServerFactory.
中提供网络服务器) 幕后还有很多事情要做。这是一个详细解释它的视频。

https://youtu.be/uCE3x4-GQ0k

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