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: 消息驱动的微服务。
这些组件共同构成了一个完整的微服务架构,帮助开发者构建高度可伸缩、可维护的分布式系统。