Spring Boot使开发人员能够专注于应用程序逻辑,而不是被复杂的配置所困扰。Spring始终将约定优先于配置作为更简单编程的模型,Spring Boo项目强调类似的原则。
具体来说,Spring Boot项目附带了四个主要功能:启动器依赖项、自动配置、CLI 和执行器。本文简要介绍了Spring Boot项目,并分析了它如何为更简单的Spring 编程模型做出贡献。
根据Spring Boot项目,Spring Boot可以轻松创建独立的、生产级的基于Spring的应用程序,你可以“直接运行”。它所做的是扫描应用程序类的类路径和配置的 bean,并对缺失的项目进行评估,将其添加到项目结构中,所有这些都无需程序员干预。这使开发人员能够更多地关注应用程序的业务逻辑,而不是Spring Boot负责的项目基础设施。例如,Spring Boot会自动查找项目中声明的特定bean。无需显式配置它们;它自动将Tomcat作为Web应用程序服务器嵌入。简而言之,Spring Boot利用了以下特性:
创建独立的Spring应用程序
直接嵌入Tomcat、Jetty 或 Undertow(无需部署WAR文件)
提供自以为是的“入门”POM以简化你的Maven配置
尽可能自动配置Spring
提供生产就绪功能,例如指标、健康检查和外部化配置
完全无需代码生成,无需XML配置
Spring Boot项目提供了四个关键特性来启动它。它们通常被称为:启动器依赖项、CLI、自动配置和执行器。
启动器依赖项
启动器基本上是一组在单个横幅下标记的依赖描述符,称为启动器名称,例如 spring-boot-starter-web。这个启动器包括开发Spring Web应用程序所需的所有依赖库。可能会添加其他依赖项,但在大多数情况下,对于特定类别的项目来说,启动器就足够了。此外,在pom.xml中使用多个starter也没有什么坏处。同样,有一个启动器叫做 spring-boot-starter-test。这个启动器自动包含了测试通常需要的几乎所有库:Spring Test、JUnit、Hamcrest和Mockito。虽然可以手动添加依赖项,但Spring Boot Starters更方便。
CLI(命令行界面)
Spring Boot提供了一个命令行工具,称为CLI(命令行界面),可以使用Groovy脚本快速原型化Spring应用程序。如前所述,Spring Boot CLI是快速原型设计的理想选择;很少使用Spring Boot CLI创建生产级应用程序。要使用Spring Boot CLI,需要安装CLI发行版并创建所需应用程序的Groovy文件。
自动配置
此功能尝试根据添加到项目类路径的依赖库自动配置应用程序。例如,在数据库应用项目中,使用 JDBC 访问后端关系数据库的类通常使用@Bean进行注释,并通过Spring应用程序上下文中的JdbcTemplate进行配置。这种情况是使用JDBC和关系数据库的任何应用程序的典型情况。因此用于配置相同的代码是样板文件,如果提供,可以重复使用。Spring Boot所做的是完全处理样板代码并提供它们,而无需开发人员显式配置它们,这就是自动配置的意思。
Spring Boot隐式扫描应用程序类路径并检测所需的数据库库并提供必要的配置以使用它。如果部分代码包含JdbcTemplate,也会自动配置。自动配置方案不仅限于数据库使用。有很多其他的库是自动配置的,只要它们在Spring应用程序类中,比如JPA、Security、Spring等路径。
执行器
执行器基本上可以通过启用审计、健康监控和度量收集功能来检查生产级应用程序。Spring Boot的其他功能主要针对开发,而执行器则公开内部运行时操作信息,例如:
在Spring Application Context中配置Bean
Spring Boot的自动配置
可用的环境变量、系统和配置属性等
跟踪最近的HTTP请求
内存使用、垃圾收集、数据源使用或Web请求的指标
结论
将Spring Boot视为另一个程序员,他通过智能感知项目的方向来完成配置和管理依赖项的所有繁琐工作。它嵌入Tomcat服务器,配置servlet容器,并在检测到应用程序是Web项目时引导REST API。如果是访问关系数据库的JPA或JDBC项目,它会提供必要的样板代码并自动配置。
作为一名程序员,需要了解幕后发生的事情并专注于项目的业务方面,因为管理和监控已经完成。除非有特殊需要,否则几乎不需要调整Spring Boot提供的项目结构。
发表评论 取消回复