导航菜单
首页 >  SpringBoot  > Spring Boot 入门

Spring Boot 入门

Spring Boot 介绍

Spring Boot 是 Java 世界中最流行的应用程序构建框架。Spring Boot 是一种基于约定而非配置的方法,用于构建基于 Spring 框架的应用程序。

使用 Spring Boot,你可以构建单体应用程序、微服务、serverless 应用程序、批处理应用程序等不同类型的应用程序。

让我们快速了解一下 Spring Boot 有哪些关键功能使其如此受欢迎。

Spring Boot 关键特性自动配置

Spring Boot 对应用程序有自己的约定,它会根据默认约定自动配置组件(又称 Bean),而不需要你显式配置所有内容。不过,如果需要,你可以通过各种方式自定义或覆盖 Bean 配置。

例如,如果添加 spring-boot-starter-data-jpa 依赖,它将添加 Hibernate 作为 JPA 实现,因为它是最常用的 JPA 提供程序。此外,Spring Boot 还会自动配置使用 Spring Data Jpa 所需的组件,如 DataSource、EntityManagerFactory、PlatformTransactionManager 等。如果 classpath 中存在内存 JDBC 驱动程序(如 H2 或 HSQL),那么 Spring Boot 将自动配置基于内存的数据源。

如果要使用 MySQL、Postgresql 等非内存数据库,可以添加相应的 JDBC 驱动程序 jar,并在 application.properties 文件中配置 JDBC 连接参数。然后,Spring Boot 将使用这些属性来配置 DataSource Bean,而不是使用默认的内存数据库。你甚至可以使用 @Bean 注解自行配置 DataSource Bean,然后 Spring Boot 将回退并使用你配置的 DataSource Bean,而不是自动配置。

有了 Spring Boot 的自动配置功能,对 Spring 应用程序配置的需求就大大减少了。

约定大于配置

Spring Boot 依靠各种默认约定来自动配置应用程序。

例如,在大多数基于 Spring(不是基于 Spring Boot)的应用程序中,我们使用配置属性并注册 PropertySourcesPlaceholderConfigurer Bean。在 Spring Boot 中,你可以将配置属性放在 src/main/resources/application.properties 文件中,Spring Boot 将自动注册 PropertySourcesPlaceholderConfigurer Bean,并加载该文件中的属性。你不必明确指定属性文件名。

同样,你可能希望根据环境(dev、qa、staging、prod)为属性配置不同的值。你可以在 application-{profile}.properties 中配置配置文件属性,其中配置文件可以是 dev、qa、staging 和 prod。然后,只需启用所需的配置文件,Spring Boot 就能从特定的配置文件属性文件中读取值。

Spring Boot 非常灵活,可以根据项目或团队的偏好自定义这些约定。

依赖的版本管理

通常情况下,Spring Boot 应用程序继承自 spring-boot-starter-parent,而 spring-boot-starter-parent 已配置了所有兼容的依赖的版本,因此你不必再检查哪个依赖的版本与哪个版本的 Spring 兼容。你可以查看 org.springframework.boot:spring-boot-dependencies 模块的 pom.xml,了解预先配置的所有依赖。

生产准备就绪的监控功能

监控是任何在生产中运行的应用程序的一个重要方面。Spring Boot 通过 Actuator 提供了生产就绪监控功能。你可以通过 Actuator REST 端点获取内存使用情况、磁盘空间、各种组件的健康检查等应用程序运行时信息。Actuator 在运行状态下使用 Micrometer,你可以使用它将所有这些应用程序指标导出到各种监控服务,如 Prometheus、Datadog、Influx 等。

嵌入式服务器的支持

传统上,基于 Java 的 web 应用程序是以 war 文件的形式构建的,然后部署到 servlet 容器或 Tomcat、Wildfly、WebSphere 等应用服务器上。更现代的方法是将服务器运行时嵌入到应用程序本身,这样就可以直接运行应用程序,而无需从外部安装和配置服务器。

Spring Boot 支持嵌入 Tomcat、Jetty、Undertow 等 servlet 容器,你可以,以独立于服务器的方式定制各种服务器属性。Spring Boot 还提供各种特定于服务器的自定义属性。

Spring 生态

Spring Boot 拥有庞大的项目生态系统,可支持各种类型的应用程序。

SpringMVC 和 Spring WebFlux:你可以使用 SpringMVC 或 Spring WebFlux 构建传统的 web 应用程序和 REST API。Spring Data:Spring Data 为 ORM 和 NoSQL 数据访问库提供了高级抽象,因此你无需重复实现模板化的 CRUD 操作。Spring Security:你可以使用 Spring Security 实现身份验证和授权。它还支持实现基于 OAuth 2.0 的认证和授权。Spring Batch:你可以使用 SpringBatch 构建强大的批处理应用程序Spring Integration:Spring Integration 实现了许多企业集成模式,可用于与第三方服务集成。Spring Cloud:Spring Cloud 支持按照 12 要素应用程序 原则构建云原生应用程序。Spring Cloud Streams:你可以构建数据管道,处理 Kafka 等基于流的数据源。

还有

相关推荐: