Spring Boot

特点

可以制作为jar
内置Tomcat

怎么把使用Spring Framework及其他相关模块做的应用制作为独立运行的jar

什么是 Spring Boot?

Spring Boot 是 Spring 社区的一个项目,它简化了基于 Spring 的应用开发。Spring Boot 的目标是提供一个快速入门的框架,使得开发者能够更快地搭建和运行应用,而无需过多地配置。Spring Boot 提供了默认配置、自动配置、嵌入式服务器、依赖管理等功能,从而大大减少了开发过程中的样板代码。
Spring Boot可以把使用spring相关模块或其他非spring模块开发的企业应用制作为独立的可以运行的jar文件

为什么要用 Spring Boot?

Spring Boot 的主要优势包括:

  • 简化配置:Spring Boot 提供了一套默认配置,减少配置文件的数量和复杂性。

  • 快速开发:可以快速启动应用,减少启动时间和部署时间。

  • 内嵌服务器:Spring Boot 可以使用内嵌的 Tomcat、Jetty 或 Undertow 服务器,无需单独部署应用服务器。

  • 依赖管理:Spring Boot 提供了依赖管理,可以方便地管理项目的依赖关系。

  • 生产就绪特性:Spring Boot 提供了监控和管理应用的能力,如健康检查、指标收集等。

  • 自动配置:Spring Boot 会根据类路径上的依赖自动配置 Spring 应用。

Spring Boot 核心配置文件是什么?

Spring Boot 的核心配置文件是:

  • application.properties

  • application.yml

这两个文件通常位于项目的 src/main/resources 目录下。

Spring Boot 配置文件有哪几种类型?它们有什么区别?

Spring Boot 支持以下几种配置文件类型:

  • Properties 文件 (application.properties): 使用传统的键值对格式。

  • YAML 文件 (application.yml): 使用 YAML 语言,支持更复杂的结构和语法。

区别在于:

  • 语法:Properties 文件使用 key=value 形式,而 YAML 文件使用缩进和冒号来组织数据。

  • 结构:YAML 支持更复杂的层次结构,可以方便地定义嵌套的配置。

  • 易读性:YAML 更加人性化,通常被认为更易于阅读和编写。

Spring Boot 有哪些方式可以实现热部署?

Spring Boot 支持以下几种热部署方式:

  • DevTools:Spring Boot 提供了一个名为 DevTools 的模块,它可以在代码更改后自动重启应用,加快开发迭代速度。

  • Spring Loaded:这是一个独立的库,可以实现在代码变化时动态重新加载类,而无需重启整个应用。

  • JRebel:这是一个商业工具,提供更高级别的热部署能力,可以在不停止应用的情况下更新代码。

Spring Cloud

什么是 Spring Cloud?

Spring Cloud 是一套基于 Spring Boot 的微服务开发工具包,它提供了一系列用于构建分布式系统的工具,如服务发现、配置管理、熔断、路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态等。

Spring Cloud 断路器的作用是什么?

Spring Cloud 断路器的主要作用是保护服务免受故障或过载的影响。当一个服务调用另一个服务时,如果后者出现故障或者响应时间过长,断路器可以暂时停止对该服务的调用,直到其恢复正常。这样可以避免雪崩效应,即一系列连锁反应导致整个系统崩溃。

Spring Cloud 的核心组件有哪些?

Spring Cloud 的核心组件包括但不限于:

  • Eureka: 服务发现组件。

  • Zuul: API 网关。

  • Hystrix: 断路器。

  • Feign: REST 客户端。

  • Config Server: 配置中心。

  • Ribbon: 客户端负载均衡。

  • Sleuth: 分布式追踪。

  • Zipkin: 分布式追踪系统。

  • Turbo: 分布式任务调度。

  • Bus: 消息总线。

  • Stream: 消息驱动的微服务。

这些组件共同构成了一个完整的微服务架构,帮助开发者构建高度可伸缩、可维护的分布式系统。