问题描述
我了解 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
单独相当于以下三个注释。
-
@Configuration
:您可以定义自己的配置类以在应用程序上下文中注册您的 bean。
2.@EnableAutoConfiguration
:Spring 会使用此功能自动在您的类路径上创建可用的 bean。更多详细信息参见 here。
-
@ComponentScan
:扫描您的应用程序类所在的当前包和基础包。
它创建 ApplicationContext
包含所有必需的 bean,ServletWebServerApplicationContext
就是这样一个创建的 bean,它负责通过查找 WebServer
bean(在 ServletWebServerFactory
.
中提供网络服务器)
幕后还有很多事情要做。这是一个详细解释它的视频。