- Spring Boot 教程
- Spring Boot - 首页
- Spring Boot - 简介
- Spring Boot - 快速入门
- Spring Boot - 引导
- Spring Tool Suite
- Spring Boot - Tomcat 部署
- Spring Boot - 构建系统
- Spring Boot - 代码结构
- Spring Bean 和依赖注入
- Spring Boot - 运行器
- Spring Boot - 启动器
- Spring Boot - 应用程序属性
- Spring Boot - 配置
- Spring Boot - 注解
- Spring Boot - 日志记录
- 构建 RESTful Web 服务
- Spring Boot - 异常处理
- Spring Boot - 拦截器
- Spring Boot - Servlet 过滤器
- Spring Boot - Tomcat 端口号
- Spring Boot - Rest 模板
- Spring Boot - 文件处理
- Spring Boot - 服务组件
- Spring Boot - Thymeleaf
- 使用 RESTful Web 服务
- Spring Boot - CORS 支持
- Spring Boot - 国际化
- Spring Boot - 调度
- Spring Boot - 启用 HTTPS
- Spring Boot - Eureka 服务器
- 使用 Eureka 注册服务
- 网关代理服务器和路由
- Spring Cloud 配置服务器
- Spring Cloud 配置客户端
- Spring Boot - 执行器
- Spring Boot - 管理服务器
- Spring Boot - 管理客户端
- Spring Boot - 启用 Swagger2
- Spring Boot - 使用 SpringDoc OpenAPI
- Spring Boot - 创建 Docker 镜像
- 跟踪微服务日志
- Spring Boot - Flyway 数据库
- Spring Boot - 发送邮件
- Spring Boot - Hystrix
- Spring Boot - WebSocket
- Spring Boot - 批处理服务
- Spring Boot - Apache Kafka
- Spring Boot - Twilio
- Spring Boot - 单元测试用例
- Rest Controller 单元测试
- Spring Boot - 数据库处理
- 保护 Web 应用程序
- Spring Boot - 使用 JWT 的 OAuth2
- Spring Boot - Google Cloud Platform
- Spring Boot - Google OAuth2 登录
- Spring Boot 资源
- Spring Boot - 快速指南
- Spring Boot - 有用资源
- Spring Boot - 讨论
Spring Boot - 简介
Spring Boot 是一个开源的基于 Java 的框架,用于创建微服务。它由 Pivotal 团队开发,用于构建独立且可用于生产环境的 Spring 应用程序。本章将向您介绍 Spring Boot,并使您熟悉其基本概念。
什么是微服务?
微服务是一种架构,允许开发人员独立开发和部署服务。每个运行的服务都有自己的进程,这实现了轻量级模型来支持业务应用程序。
微服务是一种架构方法,其中单个应用程序由许多小型、松散耦合且可独立部署的组件或服务组成。微服务是自治的:每个微服务可以独立开发、部署和操作,而不会影响其他服务。
在单体架构中,所有进程都作为单个服务运行,紧密耦合。微服务将应用程序分解成独立的组件,每个组件都作为单独的服务运行。
微服务的优势
微服务为其开发人员提供了以下优势:
- 易于部署
- 简单的可扩展性
- 与容器兼容
- 最少配置
- 生产时间更短
什么是 Spring Boot?
Spring Boot 为 Java 开发人员提供了一个良好的平台,可以开发一个独立且可用于生产环境的 Spring 应用程序,您可以直接运行。您可以通过最少的配置开始,而无需设置整个 Spring 配置。
优势
Spring Boot 为其开发人员提供了以下优势:
- 易于理解和开发 Spring 应用程序
- 提高生产力
- 减少开发时间
目标
Spring Boot 的设计目标如下:
- 避免在 Spring 中使用复杂的 XML 配置
- 以更简单的方式开发可用于生产环境的 Spring 应用程序
- 减少开发时间并独立运行应用程序
- 提供一种更简单的应用程序入门方式
为什么要使用 Spring Boot?
您可以选择 Spring Boot,因为它提供了如下所示的功能和优势:
它提供了一种灵活的方式来配置 Java Bean、XML 配置和数据库事务。
它提供强大的批处理功能并管理 REST 端点。
在 Spring Boot 中,所有内容都是自动配置的;无需手动配置。
它提供了基于注解的 Spring 应用程序
简化依赖管理
它包含嵌入式 Servlet 容器
它是如何工作的?
Spring Boot 通过使用@EnableAutoConfiguration 注解根据您添加到项目中的依赖项自动配置您的应用程序。例如,如果 MySQL 数据库位于您的类路径中,但您尚未配置任何数据库连接,则 Spring Boot 会自动配置一个内存数据库。
Spring Boot 应用程序的入口点是包含@SpringBootApplication 注解和 main 方法的类。
Spring Boot 通过使用@ComponentScan 注解自动扫描项目中包含的所有组件。
Spring Boot 启动器
对于大型项目,处理依赖管理是一项艰巨的任务。Spring Boot 通过为开发人员提供一组依赖项来解决此问题,方便开发人员。
例如,如果您想使用 Spring 和 JPA 来访问数据库,只需在您的项目中包含spring-boot-starter-data-jpa 依赖项即可。
请注意,所有 Spring Boot 启动器都遵循相同的命名模式spring-boot-starter- *,其中 * 表示应用程序的类型。
示例
查看以下 Spring Boot 启动器的解释,以便更好地理解:
Spring Boot Starter Actuator 依赖项用于监控和管理您的应用程序。其代码如下所示:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
Spring Boot Starter Security 依赖项用于 Spring Security。其代码如下所示:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
Spring Boot Starter Web 依赖项用于编写 Rest 端点。其代码如下所示:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
Spring Boot Starter Thyme Leaf 依赖项用于创建 Web 应用程序。其代码如下所示:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
Spring Boot Starter Test 依赖项用于编写测试用例。其代码如下所示:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency>
自动配置
Spring Boot 自动配置根据您在项目中添加的 JAR 依赖项自动配置您的 Spring 应用程序。例如,如果 MySQL 数据库位于您的类路径中,但您尚未配置任何数据库连接,则 Spring Boot 会自动配置一个内存数据库。
为此,您需要将@EnableAutoConfiguration 注解或@SpringBootApplication 注解添加到您的主类文件中。然后,您的 Spring Boot 应用程序将自动配置。
观察以下代码以更好地理解:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@EnableAutoConfiguration
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Spring Boot 应用程序
Spring Boot 应用程序的入口点是包含@SpringBootApplication 注解的类。此类应具有 main 方法以运行 Spring Boot 应用程序。@SpringBootApplication 注解包括自动配置、组件扫描和 Spring Boot 配置。
如果您将@SpringBootApplication 注解添加到类中,则无需添加@EnableAutoConfiguration、@ComponentScan 和@SpringBootConfiguration 注解。@SpringBootApplication 注解包含所有其他注解。
观察以下代码以更好地理解:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
组件扫描
Spring Boot 应用程序在应用程序初始化时扫描所有 Bean 和包声明。您需要将@ComponentScan 注解添加到您的类文件中以扫描您添加到项目中的组件。
观察以下代码以更好地理解:
import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.ComponentScan;
@ComponentScan
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}