当前位置: 首页 > news >正文

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

一,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进行动态配置更新。
 

相关文章:

  • C语言编写一个五子棋游戏-代码实例讲解与分析
  • 给 git 添加扩展命令
  • Qt实现远程开关机
  • Flink Lookup Join的工作原理、性能优化和应用场景
  • systemd使用入门
  • 数据结构——顺序表(基础代码题)
  • golang 如何生成唯一的 UUID
  • 一个OpenHarmony rk3568编译问题
  • 品牌增长新引擎:TikTok达人内容营销策略解析
  • 6--苍穹外卖-SpringBoot项目中菜品管理 详解(二)
  • spring boot 项目中redis的使用,key=value值 如何用命令行来查询并设置值。
  • Python编码系列—Python访问者模式:为对象结构添加新功能的艺术
  • 如何快速免费搭建自己的Docker私有镜像源来解决Docker无法拉取镜像的问题(搭建私有镜像源解决群晖Docker获取注册表失败的问题)
  • vue3 商城系统中的 sku 功能的实现
  • 优秀在线 notion 头像制作工具分享-Notion Avatar Maker
  • [case10]使用RSQL实现端到端的动态查询
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • [笔记] php常见简单功能及函数
  • 2017-09-12 前端日报
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • GitUp, 你不可错过的秀外慧中的git工具
  • java2019面试题北京
  • jQuery(一)
  • vue脚手架vue-cli
  • 大数据与云计算学习:数据分析(二)
  • 经典排序算法及其 Java 实现
  • 如何学习JavaEE,项目又该如何做?
  • 微信开放平台全网发布【失败】的几点排查方法
  • 移动端高清、多屏适配方案
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • ​学习一下,什么是预包装食品?​
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #Linux(权限管理)
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (09)Hive——CTE 公共表达式
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (十一)手动添加用户和文件的特殊权限
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (五)c52学习之旅-静态数码管
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • *算法训练(leetcode)第三十九天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net core开源商城系统源码,支持可视化布局小程序
  • .Net 代码性能 - (1)
  • .net 微服务 服务保护 自动重试 Polly
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET程序员迈向卓越的必由之路