Spring Boot 中文教程

Spring Boot 是一个基于 Java 的开源框架,用于创建微服务。 它由 Pivotal Team 开发。

使用 Spring Boot 可以轻松创建独立且可用于生产的 Spring 应用程序。

Spring Boot 包含用于开发微服务的全面基础架构支持,使开发者能够开发可以“直接运行”的企业级应用程序。


什么是微服务?

微服务是一种允许开发人员独立开发和部署服务的架构。 每个运行的服务都有自己的进程,这样就实现了轻量级模型来支持业务应用程序。

微服务的优势

微服务为其开发人员提供以下优势

  • 易于部署
  • 简单的可扩展性
  • 与容器兼容
  • 最低配置
  • 生产时间更短

什么是 Spring Boot?

Spring Boot 为 Java 开发人员提供了一个很好的平台,可以开发一个可以直接运行的独立和生产级的 Spring 应用程序。 我们可以从最低配置开始,而不需要整个 Spring 配置设置。

Spring Boot 的优势

Spring Boot 为其开发人员提供以下优势

  • 易于理解和开发 Spring 应用程序
  • 提高生产力
  • 减少开发时间

Spring Boot 目标

Spring Boot 的设计目标如下

  • 在 Spring 中避免复杂的 XML 配置
  • 以更简单的方式开发生产就绪的 Spring 应用程序
  • 减少开发时间并独立运行应用程序
  • 提供更简单的应用程序入门方式

为什么使用 Spring Boot?

我们可以选择 Spring Boot,因为它提供了下面列出的特性和好处

  • 它提供了一种灵活的方式来配置 Java Bean、XML 配置和数据库事务。
  • 它提供了强大的批处理和管理 REST 端点。
  • 在 Spring Boot 中,一切都是自动配置的; 无需手动配置。
  • 它提供了基于注解的spring应用
  • 简化依赖管理
  • 它包括嵌入式 Servlet 容器

Spring Boot 工作原理

Spring Boot 使用 @EnableAutoConfiguration 注解根据我们添加到项目中的依赖项自动配置我们的应用程序。 例如,如果 MySQL 数据库在你的 classpath 上,但你没有配置任何数据库连接,那么 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 Endpoints。 其代码如下所示

<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>

自动配置 Auto Configuration

Spring Boot Auto Configuration 根据我们在项目中添加的 JAR 依赖项自动配置 Spring 应用程序。 例如,如果 MySQL 数据库在你的 classpath 上,但你没有配置任何数据库连接,那么 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 Application 的入口点是包含@SpringBootApplication 注解的类。 这个类应该有运行 Spring Boot 应用程序的 main 方法。 @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);
   }
}

查看笔记

扫码一下
查看教程更方便