【发布时间】:2021-01-28 16:55:13
【问题描述】:
我了解 SpringBoot 如何在其他方面节省时间,例如拥有嵌入式服务器和启动器依赖项,但 SpringBoot 如何减少应用程序所需的样板代码?
谢谢
【问题讨论】:
-
主要通过注释和自动装配
标签: java spring spring-boot boilerplate
我了解 SpringBoot 如何在其他方面节省时间,例如拥有嵌入式服务器和启动器依赖项,但 SpringBoot 如何减少应用程序所需的样板代码?
谢谢
【问题讨论】:
标签: java spring spring-boot boilerplate
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 文件自定义配置。
【讨论】:
Spring boot 自带启动器,通过 maven 可以搜索到所需的依赖项并将其添加到项目中,它支持快速开发,以下是 spring boot 的一些关键特性
【讨论】:
当您使用注解 @SpringBootAplicaiton 时,Spring boot 会负责创建运行 WebServer 所需的所有 bean,并使用其依赖注入功能注入它。
@SPringBootApplicaiton单独相当于下面三个注解。
@Configuration :您可以定义自己的配置类来在应用程序上下文中注册您的 bean。2.@EnableAutoConfiguration:Spring 使用此功能自动在您的类路径上创建可用的 bean。更多详细信息可在here 获得。
@ComponentScan :扫描您的应用程序类所在的当前和基础包。它创建ApplicationContext,其中包含所有必要的bean,ServletWebServerApplicationContext就是这样一个bean,它通过在@987654333中寻找ServletWebServerFactory bean(提供webServer)来负责初始化和运行WebServer @.
幕后还有很多事情要做。这是一个详细解释它的视频。
【讨论】:
您可以将 Spring Boot 视为 Spring 的自以为是的发行版。它带有健全的默认值和机制来隐藏样板,同时仍然可以更改这些默认值。
【讨论】: