Spring Boot - 简介介绍 首页Spring BootSpring Boot - 简介

Spring框架是 Java 平台的一个开源的全栈(Full-stack)应用程序框架和控制反转容器实现,一般被直接称为 Spring。该框架的一些核心功能理论上可用于任何 Java 应用,但 Spring 还为基于Java企业版平台构建的 Web 应用提供了大量的拓展支持。Spring 没有直接实现任何的编程模型,但它已经在 Java 社区中广为流行,基本上完全代替了企业级JavaBeans(EJB)模型。

Spring框架以 Apache License 2.0 开源许可协议的形式发布,该框架最初由 Rod Johnson 以及 Juergen Hoeller 等人开发。

本章将向您介绍Spring Boot,并使您熟悉其基本概念。

Spring Boot工作流程

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 Endpoints。其代码如下所示-

<dependency&gt
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Spring Boot Starter thymeleaf依赖项用于创建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自动配置

Spring Boot Auto Configuration根据您在项目中添加的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 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组件扫描

初始化时,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);
   }
}
点我分享笔记