【注】本文译自:https://www.tutorialspoint.com/spring_boot/spring_boot_quick_guide.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 用于监控和管理你的应用。代码如下:
Spring Boot Starter Security dependency 用于 Spring 安全。代码如下:
Spring Boot Starter web dependency 用于编写Rest 端点。代码如下:
Spring Boot Starter Thyme Leaf dependency 用于创建 web 应用。代码如下:
Spring Boot Starter Test 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);
}
}