5-微服务篇-1

简介: 本文详解SpringBoot核心机制:①自动装配原理——通过@SpringBootApplication→@EnableAutoConfiguration→AutoConfigurationImportSelector→spring.factories加载条件化配置类;②启动流程三阶段:初始化、上下文创建、自动配置;③常用起步依赖、配置文件类型(properties/YAML)及加载优先级;④四种运行方式。

01- 讲一讲SpringBoot自动装配的原理

1.在SpringBoot项目的启动引导类上都有一个注解@SpringBootApplication

这个注解是一个复合注解, 其中有三个注解构成 , 分别是

  • @SpringBootConfiguration : 是@Configuration的派生注解 , 标注当前类是一个SpringBoot的配置类
  • @ComponentScan : 开启组件扫描, 默认扫描的是当前启动引导了所在包以及子包
  • @EnableAutoConfiguration : 开启自动配置(自动配置核心注解)

2.在@EnableAutoConfiguration注解的内容使用@Import注解导入了一个AutoConfigurationImportSelector.class的类

在AutoConfigurationImportSelector.class中的selectImports方法内通过一系列的方法调用, 最终需要加载类加载路径下META-INF下面的spring.factories配置文件

3.在META-INF/spring.factories配置文件中, 定义了很多的自动配置类的完全限定路径

这些配置类都会被加载

4.加载配置类之后, 会配置类或者配置方法上的@ConditionalOnXxxx条件化注解是否满足条件

如果满足条件就会从属性配置类中读取相关配置 , 执行配置类中的配置方法 , 完成自动配置

02- 讲一讲SpringBoot启动流程

springboot项目在启动的时候, 首先会执行启动引导类里面的SpringApplication.run(AdminApplication.class, args)方法

这个run方法主要做的事情可以分为三个部分 :

第一部分进行SpringApplication的初始化模块,配置一些基本的环境变量、资源、构造器、监听器

第二部分实现了应用具体的启动方案,包括启动流程的监听模块、加载配置环境模块、及核心的创建上下文环境模块

第三部分是自动化配置模块,该模块作为springboot自动配置核心,在后面的分析中会详细讨论

03- 你们常用的SpringBoot起步依赖有哪些

04- springBoot支持的配置文件有哪些 ? 加载顺序是什么样的

1 properties文件2 YAML文件 3 系统环境变量 4 命令行参数

如果有相同的配置参数, 后加载的会覆盖先加载的

05- 运行一个SpringBoot项目有哪些方式

  1. 直接使用jar -jar 运行
  2. 开发过程中运行main方法
  3. 可以配置插件 , 将springboot项目打war包, 部署到Tomcat中运行
  4. 直接用maven插件运行 maven spring-boot:run
目录
相关文章
|
7月前
|
缓存 NoSQL 调度
4-Redis篇-4
本文详解Redis三大核心问题:缓存雪崩(大量key同时失效,需加随机过期时间)、热点数据保障(采用LFU淘汰策略)、分布式锁实现(基于SETNX,解决死锁、超时、归一、可重入及阻塞等问题),并附实战应用案例。
275 12
|
7月前
|
存储 NoSQL 算法
4-Redis篇-2
本文详解Redis集群架构与核心机制:采用哨兵集群(1主2从+3哨兵)保障高可用;对比主从复制、哨兵、Cluster分片三大方案;解析主从同步的全量/增量复制流程;说明Cluster基于16384哈希槽的分片存储原理;简述MULTI/EXEC等事务命令及实际使用情况。(239字)
300 6
|
7月前
|
存储 缓存 NoSQL
4-Redis篇-1
本文详解Redis在项目中的三大应用:热点缓存、业务数据存储(如验证码、排行榜)及分布式锁;涵盖5种基础数据类型、RDB/AOF双持久化机制、惰性+定期混合过期策略,以及8种内存淘汰策略。
303 19
|
7月前
|
Linux API 数据安全/隐私保护
OpenClaw怎么部署?OpenClaw 阿里云/本地Win11/MacOS/Linux部署教程+千问/百炼Coding Plan API配置全指南
OpenClaw(曾用名Clawdbot、Moltbot)作为2026年开源AI智能体领域的标杆工具,凭借“本地优先、全场景自动化、多模型兼容”的核心优势,成为个人与轻量团队提升效率的首选。它无需复杂编程,仅通过自然语言指令,即可完成文件管理、代码生成、网页抓取、办公协同等重复性任务,所有数据可本地存储,隐私安全性拉满。其核心价值在于打破传统AI“只说不做”的局限,实现“指令输入-任务拆解-执行落地”的完整闭环。
1125 10
|
7月前
|
人工智能 Linux API
【OpenClaw保姆级教程】阿里云/Win11/MacOS/Linux部署步骤+API配置+Skills使用+常见问题
2026年初,OpenClaw(昵称“小龙虾”)以黑马之姿席卷GitHub,14.5万颗星的增速创下开源项目纪录。这款由Peter Steinberger开发的AI智能体执行框架,彻底打破传统AI“被动对话”的局限,凭借“自我迭代、主动出击、随心定制”三大核心优势,让AI从“能说会道”升级为“真正会干活”——它能记住用户习惯、主动捕捉机会,甚至自我改造优化,成为无数开发者与普通用户的专属AI助手。
1093 6
|
网络协议 关系型数据库 MySQL
连接远程mysql数据库失败常见原因及解决办法
1. 没有开启 MySQL 的远程登陆帐号。 1.找到mysql数据库的user表。在user表中新建一条数据,设置User(username)和Host(开放访问MySQL的IP:例如123.118.17.201)以及登录密码。这样就设置了允许访问的用户名和IP地址(若想所有IP都可以访问,则可将Host设置为‘%’,但是这样很危险,不建议)。
10891 0
连接远程mysql数据库失败常见原因及解决办法
|
9月前
|
机器学习/深度学习 算法 自动驾驶
基于YOLOv8模型的行人车辆多目标检测计数与跟踪系统
本研究基于YOLOv8模型,针对智能交通与公共安全需求,开展行人车辆多目标检测、计数与跟踪技术研究。通过融合YOLOv8高精度检测与DeepSORT稳定跟踪,实现复杂场景下目标的实时定位、统计与轨迹追踪,提升交通管理效率与公共安全保障能力,推动智慧城市发展。
|
9月前
|
人工智能 自然语言处理 监控
个人 / 企业 / 科研全覆盖!2025 智能体盘点,5 款工具适配全职场需求
AI智能体正从辅助工具进化为“数字同事”,实在Agent凭借一句话生成流程、跨平台操作和高稳定性,成为企业降本增效的得力助手。本文盘点2025年5款实用智能体,助力职场人高效办公。
1416 10
|
9月前
|
人工智能 自然语言处理 供应链
深度揭秘 RPA:从录屏脚本到智能员工,它的进化之路有多惊艳?
RPA机器人是能自动处理重复性工作的“数字员工”,通过模拟人工操作,实现数据录入、报表填报等任务的自动化。它非实体、不需编程,广泛应用于金融、制造、医疗等领域,提升效率、降低错误。未来,AI赋能的RPA将更智能、普惠,推动人机协同新变革。(239字)
1460 1
|
9月前
|
人工智能 自然语言处理 监控
告别无效加班!2026 企业高效 Agent 工具 TOP5,跨系统操作零门槛
Agent工具正成为企业降本增效的核心利器。2025年全球市场规模突破2000亿美元,中国占比达40%。从电商运营到财务对账,实在智能·实在Agent凭借“一句话生成流程”、跨系统操作与自主纠错能力,实现效率飞跃,是企业智能化升级的优选方案。
1207 1