【注】本文译自:https://www.tutorialspoint.com/spring_boot/spring_boot_introduction.htm
Spring Boot 是一个基于 Java 的开源框架,可用于创立微服务。它由 Pivotal 团队开发,用来构建可在生产环境独立运行的 spring 利用。Spring Boot 蕴含了全面的反对微服务开发的基础设施,并且可能开发可“即时运行”的企业级利用。
受众
本教程为 Java 开发者而设计,帮忙他们了解如何以最小化配置开发可用于生产的 spring 利用。本教程揭示了 Spring Boot 的次要个性,譬如:启动者、主动配置、Bean 和 Actuator 等。通过本教程,你能够取得中等水平的 Spring Boot 技能。
先决条件
学习本教程须要当时有肯定的 Java、Spring、Maven 和 Gradle 的教训。如果你有这些概念,就能够轻松了解 Spring Boot 的相干概念。要是你领有 RESTful Web 服务的编写教训,那会更有劣势。如果你是一位初学者,倡议你在开始学习 Spring Boot 之前要先对这些方面的常识有所理解。
Spring Boot — 简介
本文将带你相熟 Spring Boot 及其基本概念。
什么是微服务?
微服务是一个体系结构,容许开发者独立开发和部署服务。每个服务都有其独立的运行过程,并且以轻量机制通信反对业务利用。
劣势
对于开发者而言,微服务有以下劣势:
- 易于部署
- 便于扩大
- 与容器兼容
- 最小化配置
- 缩短生产工夫
什么是 Spring Boot?
Spring Boot 为 Java 开发者提供了一个优良的平台,可用于开发独立运行的生产级 spring 利用,并且可能即时运行(just run)。你毋须相熟整个 spring 配置,只需以最小化的配置进行开发。
劣势
Spring Boot 为开发者提供了以下劣势:
- 易于了解和开发 spring 利用
- 进步生产效率
- 缩小开发工夫
指标
Spring Boot 的设计指标如下:
- 防止 spring 简单的 XML 配置
- 以便捷的形式开发生产级的 Spring 利用
- 缩小开发和独立运行的工夫
- 提供启动利用的便捷形式
为什么要用 Spring Boot?
之所以要抉择 Spring Boot,是因为它可能提供以下个性和利益:
- 提供了灵便的形式来配置 Java Beans、XML 配置和数据库事务
- 提供了弱小的批处理、治理 REST 端点
- 在 Spring Boot 中,所有皆为主动配置,毋须手工配置
- 提供了基于注解的 spring 利用
- 便捷的依赖治理
- 引入了嵌入式 Servlet 容器
工作原理
Spring Boot 应用 @EnableAutoConfiguration 注解可主动配置利用。
Spring boot 利用的入口点是蕴含 @SpringBootApplication 的类和其 main 办法。
Spring Boot 应用 @ComponentScan 注解主动扫描我的项目中蕴含的所有组件。
Spring Boot 启动器(Starters)
对于大型项目而言,依赖治理是一项艰巨的工作。Spring Boot 通过为开发者提供一系列便捷的依赖来解决这个难题。比方:要想应用 Spring 和 JPA 进行数据库拜访,你只有在我的项目里引入 spring-boot-starter-data-jpa 就能够了。
要留神所有的 Spring Boot 启动器都有雷同的命名范式 spring-boot-starter- *,这里 * 批示它是某种的类型类型。
示例
看看上面解释能够对 Spring Boot 启动器有更好的了解:
Spring Boot Starter Actuator dependency 用于监控和治理你的利用。代码如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Spring Boot Starter Security dependency 用于 Spring 平安。代码如下:
<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>
主动配置
Spring Boot 主动配置通过在我的项目中增加 JAR 依赖来自动化配置 Spring 利用。例如:如果你的 classpath 里蕴含 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 的类。这个类该当有运行 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);
}
}