Spring Boot 简明教程
Spring Boot - Introduction
Spring Boot 是一个用于创建微服务的开源 Java 框架。它由 Pivotal Team 开发,用于构建独立且可用于生产的 Spring 应用程序。本章将为您介绍 Spring Boot,并帮助您熟悉它的基本概念。
What is Spring Boot?
Spring Boot 为 Java 开发人员提供了一个非常好的平台,用于开发您可以在 just run 的独立而且可用于生产的 Spring 应用程序。您可以在无需进行整个 Spring 配置设置的情况下开始使用最低配置。
Why Spring Boot?
您可以根据这里提供的特性和优势选择 Spring Boot−
-
它提供了一种灵活的方式来配置 Java Bean、XML 配置和数据库事务。
-
它提供强大的批处理功能并管理 REST 终结点。
-
在 Spring Boot 中,所有内容都是自动配置的;无需手动配置。
-
它提供了基于注释的 Spring 应用程序
-
Eases dependency management
-
它包含嵌入式 Servlet 容器
How does it work?
Spring Boot 根据您使用 @EnableAutoConfiguration 注释添加到项目的依赖项自动配置您的应用程序。例如,如果 MySQL 数据库在您的类路径中,但是您还未配置任何数据库连接,那么 Spring Boot 会自动配置一个内存数据库。
Spring 引导应用程序的入口点是包含 @SpringBootApplication 注解和主方法的类。
Spring 引导使用 @ComponentScan 注解自动扫描项目中包含的所有组件。
Spring Boot Starters
处理依赖管理对于大型项目而言是一项艰巨的任务。Spring Boot 通过为开发者提供一组依赖项来解决这个问题。
例如,如果您想使用 Spring 和 JPA 访问数据库,那么只需要在项目中包含 spring-boot-starter-data-jpa 依赖项就足够了。
请注意,所有 Spring 引导启动器都遵循相同的命名模式 spring-boot-starter- *,其中 * 表示它是应用程序的类型。
Examples
查看下面解释的以下 Spring 引导启动器以更好地理解 −
Spring Boot Starter Actuator dependency 用于监控和管理您的应用程序。其代码如下所示 −
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Spring Boot Starter Security dependency 用于 Spring Security。其代码如下所示 −
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
Spring Boot Starter web dependency 用于编写 REST 端点。其代码如下所示 −
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Spring Boot Starter Thyme Leaf dependency 用于创建 Web 应用程序。其代码如下所示 −
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Spring Boot Starter Test dependency 用于编写测试用例。其代码如下所示 −
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
Auto Configuration
Spring Boot 自动配置会根据您在项目中添加的 JAR 依赖项自动配置您的 Spring 应用程序。例如,如果 MySQL 数据库在您的类路径中,但您尚未配置任何数据库连接,那么 Spring Boot 会自动配置内存数据库。
为此,您需要向您的主类文件添加 @EnableAutoConfiguration 注解或 @SpringBootApplication 注解。然后,您的 Spring 引导应用程序将被自动配置。
观察以下代码以更好地理解 −
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 Application
Spring 引导应用程序的入口点是包含 @SpringBootApplication 注解的类。此类应具有运行 Spring 引导应用程序的主方法。 @SpringBootApplication 注解包括自动配置、组件扫描和 Spring 引导配置。
如果您向类中添加 @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);
}
}
Component Scan
当应用程序初始化时,Spring 引导应用程序扫描所有 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);
}
}