SpringBoot启动过程简述 和 SpringCloud 的五大组键

news/2024/9/30 8:22:04 标签: spring boot, 后端, springboot五大组件

一,Spring Boot启动过程简述如下:

1,启动类:标有 @SpringBootApplication 注解的类是Spring Boot应用的入口点

2,@SpringBootApplication注解是一个复合注解,包含
@SpringBootConfiguration (表示这是一个Spring Boot配置类)、
@EnableAutoConfiguration(启用Spring Boot自动配置)以及
@ComponentScan(指定Spring扫描的包路径)。

3,运行 SpringApplication.run() 方法启动应用

4,SpringApplication 类负责启动Spring应用上下文。它会创建一个 ApplicationContext 实例。

5,run方法内部会做一系列工作,包括检查类路径、加载配置文件、实例化Spring容器等

6,自动配置@EnableAutoConfiguration会根据类路径上的jar依赖和
application.propertiesapplication.yml 文件中的配置来自动配置Spring容器

7,一旦容器启动完成,SpringApplication会启动完成并启动监听器

以下是一个简单的Spring Boot启动类示例:

@SpringBootApplication
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}

二,SpringCloud的五大组键

1,服务发现与注册:Eureka Server和Eureka Client,Netflix Eureka,或Alibaba NCOS
Eureka 是一个服务注册与发现组件,它可以让微服务应用动态地注册和发现服务。
通过 Eureka,微服务应用可以轻松地找到其他服务并实现服务之间的通信。

2,客户端负载均衡,Spring Cloud Ribbon 负载均衡,Netflix Ribbon
是一个负载均衡组件,它可以帮助微服务应用在多个服务实例之间进行负载均衡,
提高系统的性能和可用性。Ribbon 支持多种负载均衡策略,并且与 Eureka 集成,
可以自动从 Eureka 服务注册中心获取服务实例信息。

3,断路器,Spring Cloud Hystrix,Netflix Hystrix
是一个容错管理组件,它可以帮助微服务应用处理分布式系统中的故障和延迟。
Hystrix 提供了断路器、超时和降级等机制,可以保护系统免受故障的影响,并提高系统的可靠性。

4,服务网关,Spring Cloud Gateway,Zuul网关,fegin请求,Netflix Zuul
是一个网关组件,它可以为微服务应用提供统一的访问入口和路由功能。
Zuul 可以实现请求的路由、过滤、负载均衡等功能,同时与 Eureka 集成,
可以动态地发现和路由到服务实例。

5,分布式配置管理,Spring Cloud Config,或Alibaba NCOS
提供服务端和客户端,服务器存储后端的默认实现使用git,因此它轻松支持标签版本的配置环境。
Config是静态配置的。如果需要动态配置,可以使用spring cloud bus进行动态配置更新。
 


http://www.niftyadmin.cn/n/5684710.html

相关文章

golang web笔记-3.响应ResponseWriter

简介 从服务器向客户端返回响应需要使用 ResponseWriter,ResponseWriter是一个接口,handler用它来返回响应。 ResponseWriter常用方法 Write:接收一个byte切片作为参数,然后把它写入到响应的body中。如果Write被调用时&a…

手机USB连接不显示内部设备,设备管理器显示“MTP”感叹号,解决方案

进入小米驱动下载界面,等小米驱动下载完成后,解压此驱动文件压缩包。 5、小米USB驱动安装方法:右击“计算机”,从弹出的右键菜单中选择“管理”项进入。 6、在打开的“计算机管理”界面中,展开“设备管理器”项&…

[Linux]:线程(二)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 与Windows环境不同,我们在linux环境下需要通过指令进行各操作&…

【Python】使用 Pydantic + SQLAlchemy + MySQL 实现自动记录创建时间和更新时间

使用 Pydantic SQLAlchemy MySQL 实现自动记录创建时间和更新时间 在 Web 应用开发中,自动记录数据库中的 创建时间 和 更新时间 是常见的需求。无论是日志记录、数据跟踪,还是审计功能,这类时间戳都至关重要。本文将介绍如何结合 SQLAlch…

【有啥问啥】In-Context Learning(上下文学习):深入解析与应用实践

In-Context Learning(上下文学习):深入解析与应用实践 引言 在人工智能与机器学习的浪潮中,In-Context Learning(上下文学习)作为一种新兴的学习范式,正逐渐崭露头角。与传统的机器学习模型不…

07_矩形圆形绘制

import cv2 import numpy as np newImageInfo (600,600,3) dst np.zeros(newImageInfo,np.uint8) # 1 2 左上角 3 右下角 4 5 fill -1 >0 line w cv2.rectangle(dst,(150,380),(350,550),(150,200,100),3) # 2 center 3 r cv2.circle(dst,(250,250),(100),(0,0,255),6) …

1.8 软件业务测试

欢迎大家订阅【软件测试】 专栏,开启你的软件测试学习之旅! 文章目录 前言1 概述2 方法3 测试策略4 案例分析 前言 在软件开发生命周期中,业务测试扮演着至关重要的角色。本文详细讲解了业务测试的定义、目的、方法以及测试策略。 本篇文章参…

macOS 开发环境配置与应用开发

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…