Spring Boot 核心模块全解析:12 个模块详解及作用说明
在当今的微服务与云原生时代,Spring Boot 已成为构建现代 Java 应用的事实标准。它通过“约定优于配置”的理念,大大降低了 Spring 应用的开发门槛,帮助开发者快速启动和部署独立的、生产级别的项目。
本篇文章将系统梳理 Spring Boot 框架中核心模块的结构与功能,尤其适合希望深入理解 Spring Boot 底层机制、优化项目结构,或是准备面试时查漏补缺的开发者。
文章目录
- 1、Spring Boot 项目介绍
- 2、Spring Boot 各模块介绍
- 2.1、spring-boot
- 2.2、spring-boot-autoconfigure
- 2.3、spring-boot-actuator:
- 2.4、spring-boot-actuato-autoconfigure:
- 2.5、spring-boot-parent
- 2.6、spring-boot-dependencies
- 2.7、spring-boot-test:
- 2.8、spring-boot-test-autoconfigure
- 2.9、spring-boot-devtools
- 2.10、spring-boot-doc
- 2.11、spring-boot-starters
- 2.12、spring-boot-tools
- X、后记
1、Spring Boot 项目介绍
Spring Boot 是 Spring 全家桶项目中的一个子项目,也是 Spring 组件应用一站式解决方案,它基于 Spring 框架,主要作用是通过 “约定优于配置” 的核心思想,显著降低了 Spring 应用的门槛,让开发者能够快速构建生产级的独立应用。所以现在 Spring Boot 也成了后端标准的开发框架。
和 Spring 框架一样,Spring Boot 框架也是由许多核心模块组成的,每个模块负责不同的功能点,本文讲着重于介绍 Spring Boot 相关的 12 个模块的作用和功能。
下图为 Spring-Boot 3.x 项目结构截图(模块介绍的结构以 Spring-Boot 3.x 为主):
2、Spring Boot 各模块介绍
2.1、spring-boot
这是 Spring Boot 框架的主模块,也是支持其他模块的核心模块,主要功能如下:
- 提供了一个启动 Spring 应用的主类,并提供了一个相当方便的静态方法,它的主要作用是负责创建和刷新 Spring 容器的上下文;
- 提供了内嵌式的并可自由选择搭配的 Servlet 应用容器,如 Tomcat、Jetty、Undertow 等;
- 提供了一流的配置外部化支持;
- 提供了一个很方便的 Spring 容器上下文初始化器,包括对合理记录日志默认参数的支持。
2.2、spring-boot-autoconfigure
这个模块提供了常用的 Java 主流技术的自动配置组件,其提供的 @EnableAutoConfifiguration 注解就能启用 Spring Boot 的自动配置功能,它能根据类路径下的内容决定是否自动配置。
- 作用:实现自动配置的核心模块。
- 解释:Spring Boot 通过这个模块根据当前 classpath 中的依赖、配置和类自动装配 Spring Bean,极大地简化了配置流程。比如你引入了
spring-boot-starter-web
,它就会自动配置DispatcherServlet
、Tomcat
、Jackson
等。
2.3、spring-boot-actuator:
这是 Spring Boot 提供的监控模块,比如,它提供了健康端点、环境端点、Spring Bean 端点等端点,可以更好地帮助开发者监控应用并和应用进行交互。
- 作用:提供生产环境中应用监控和管理的功能。
- 解释:包括健康检查、应用指标、信息、环境变量、线程、日志级别等端点(比如
/actuator/health
、/actuator/metrics
)。
2.4、spring-boot-actuato-autoconfigure:
这个模块是为 spring-boot-actuator 监控模块提供自动配置的模块。
- 作用:为 Actuator 提供自动配置支持。
- 解释:是 actuator 的自动配置部分,让你无需手动注册和配置每个监控端点,比如
HealthEndpointAutoConfiguration
等类。
2.5、spring-boot-parent
Parent POM,位于 Spring Boot 的底层模块中,专门用于管理构建插件、通用属性、构建 profile 等基础配置。
它不是专门给用户直接使用的,而是 Spring Boot 自己用来构建 starter、autoconfigure 等模块的父级。
而为用户准备的 Parent POM 是 spring-boot-starter-parent 模块,它简化了用户项目配置,同时继承自 spring-boot-parent
2.6、spring-boot-dependencies
只管理各种依赖的版本,不包含任何构建配置或插件设置。
可以用它来:
- 替代 Spring Boot 提供的 Parent
- 在自己的 Parent 项目中引用它,来享受 Spring Boot 提供的版本管理
2.7、spring-boot-test:
这是模块是 Spring Boot 的测试模块,为应用提供了许多非常有用的单元测试功能,包含了单元测试所需要的 常用注解、断言、mock 支持、TestContext 框架集成 等内容。
- 常用测试注解:
@SpringBootTest
,@MockBean
,@SpyBean
,@TestComponent
,@TestConfiguration
等; - 断言工具:
AssertJ
集成、TestRestTemplate
、OutputCapture
等; - 模拟框架集成:支持 Mockito、Hamcrest、AssertJ;
- TestContext 支持:整合 Spring 测试上下文加载逻辑;
- 环境隔离工具:
@DirtiesContext
,@TestPropertySource
; - 应用上下文加载:测试时自动加载配置文件、Bean、环境等。
2.8、spring-boot-test-autoconfigure
这个模块是为 spring-boot-test 测试模块提供自动配置的模块。提供 一组自动化配置的测试切片(Test Slice),用于做快速、轻量级的单元测试,只加载部分上下文(而不是整个应用)。
@WebMvcTest
:只加载 MVC 相关组件(不加载 Service/Repository)@DataJpaTest
:加载 JPA Repository + 内存数据库(不加载 Web 层)- …
2.9、spring-boot-devtools
spring-boot-devtools 是一个专为本地开发环境优化体验的开发者工具模块,主要用于Spring Boot应用的开发阶段,它提供了一些显著提升开发效率的特性:自动重启、LiveReload、禁用缓存等功能,让开发过程更高效流畅。这个模块的功能是可选的,只限于本地开发环境,当打成整包运行时,这些功能会自动被禁用。
- 自动重启:代码、配置文件等发生变更时自动重启 Spring Boot 应用(比热部署更快);
- LiveReload 支持:自动刷新浏览器页面(前提是浏览器安装 LiveReload 插件);
- 禁用缓存:页面模板不缓存(Thymeleaf、FreeMarker、Mustache),改完立即生效;
- 热加载静态资源支持:修改 static 文件夹中的资源时,页面自动刷新。
2.10、spring-boot-doc
spring-boot-docs 是 Spring Boot 官方文档的源码模块,用于生成 Spring Boot 的参考文档站点。
2.11、spring-boot-starters
spring-boot-starters 是 Spring Boot 提供的一组模块化依赖集合,用于快速集成常用功能(Web、JPA、Security、Thymeleaf等)。它本身是一个 聚合模块(parent module),主要用于组织和管理所有 starter。
spring-boot-starters
├── spring-boot-starter
├── spring-boot-starter-web
├── spring-boot-starter-data-jpa
├── spring-boot-starter-security
├── spring-boot-starter-thymeleaf
├── spring-boot-starter-test
├── ...
2.12、spring-boot-tools
spring-boot-tools 是 Spring Boot 内部使用的一组工具类模块集合,服务于打包、加载、开发效率提升等目的,通常由插件或构建系统间接使用。
spring-boot-tools
├── spring-boot-loader ← 打包可执行 JAR 的核心
├── spring-boot-buildpack-platform ← 支持 buildpack 容器构建
├── spring-boot-buildpack-tools ← buildpack 构建逻辑
├── spring-boot-docker-compose ← 支持 docker-compose 自动管理
├── spring-boot-antlib ← 支持 Apache Ant 构建
├── ...
X、后记
Spring Boot 的设计不仅追求极致的开发效率,还为系统可维护性和扩展性提供了坚实的架构基础。掌握这些核心模块的职责与配合方式,能够帮助我们在实际项目中更加灵活地集成功能、排查问题或做性能优化。
希望这篇文章能为你在使用或深入理解 Spring Boot 的过程中提供一些实用的参考。如果你觉得有帮助,欢迎点赞收藏,也可以留言交流你的见解与实践经验。
相关文章:
Spring Boot 核心模块全解析:12 个模块详解及作用说明
在当今的微服务与云原生时代,Spring Boot 已成为构建现代 Java 应用的事实标准。它通过“约定优于配置”的理念,大大降低了 Spring 应用的开发门槛,帮助开发者快速启动和部署独立的、生产级别的项目。 本篇文章将系统梳理 Spring Boot 框架中…...
【无人机】无人机方向的设置,PX4飞控方向,QGC中设置飞控的方向/旋转角度。PX4使用手册飞行控制器/传感器方向
目录 #1、基本概念:计算方向 #2、详细步骤:设置方向 #3、微调 默认情况下,飞行控制器(和外部指南针,如果有)应放置在框架顶部朝上,方向应使箭头指向飞机前部。 如果板或外部指南针安装在任何…...
【Spring Boot基础】MyBatis的基础操作:日志、增删查改、列名和属性名匹配 -- 注解实现
MyBatis的基础操作 1.打印日志2. 参数传递2.1不传参2.2 固定参数 3. 增(Insert)3.1 用对象接参3.2 用param注解接收参数3.3 返回主键 4. 删(Delete)4.1 用Integer接参4.2 用对象接参 5. 改(Update)6. 查(Select)6.1 查6.2 拼接SQL语句6.3 列名和属性名匹配6.3.1 起别名 as6.3.2…...
泰迪智能科技大模型应用平台功能特色优势
1.平台概述 大模型应用平台是一款专为高校在大模型应用场景下的教学和科研需求设计的知识库问答系统。平台具备便捷性,支持上传常见格式的数据文件,如txt、doc、pdf、md等,并提供简洁明了的操作配置界面,使用户能够轻松搭建和训练…...
【NLP 69、KG - BERT】
人们总是在无能为力的时候喜欢说顺其自然 —— 25.4.21 一、KG-BERT:基于BERT的知识图谱补全模型 1.模型结构与设计 Ⅰ、核心思想: 将知识图谱中的三元组(头实体-关系-尾实体)转化为文本序列,利用BERT的上下文理解能…...
Spring解决循环依赖
Spring 通过 三级缓存机制 解决循环依赖问题,其核心思想是 提前暴露未完全初始化的 Bean,允许依赖方在 Bean 完全初始化前引用其早期版本。以下是详细解析: 一、三级缓存机制 Spring 在单例 Bean 的创建过程中维护了三级缓存,用于…...
深入解析 Spring 中的 @Value 注解(含源码级剖析 + 自定义实现)
深入解析 Spring 中的 Value 注解(含源码级剖析 自定义实现) 在 Spring 开发中,我们经常使用 Value 注解将配置文件中的值注入到 Bean 的属性中。本文将深入探讨 Value 的使用方式、默认值支持、底层原理以及自定义实现方式。 一、Value 的…...
【Flink SQL实战】 UTC 时区格式的 ISO 时间转东八区时间
文章目录 一、原始数据格式二、解决方案三、其他要求 在实际开发中,我们常常会遇到此类情况:数据源里的时间格式是类似 2025-04-21T09:23:16.025Z 这种带 TimeZone 标识的 ISO 8601 格式,而我们需要在 Flink SQL 中将其转换成北京时间显示。 …...
【论文阅读23】-地下水预测-TCN-LSTM-Attention(2024-11)
这篇论文主要围绕利用深度学习模型检测地下水位异常以识别地震前兆展开。 [1] Chen X, Yang L, Liao X, et al. Groundwater level prediction and earthquake precursor anomaly analysis based on TCN-LSTM-attention network[J]. IEEE Access, 2024, 12: 176696-176718. 期刊…...
/proc/sys/vm/下各参数含义
/proc/sys/vm/下各参数含义 admin_reserve_kbytes如何计算最小有效预留? compact_memorycompaction_proactivenesscompact_unevictable_alloweddirty_background_bytesdirty_background_ratiodirty_bytesdirty_expire_centisecsdirty_ratiodirtytime_expire_seconds…...
算法分析与设计——动态规划复习题(待更新
检测题: 组合优化问题的目标函数通常不包括以下哪种形式? A. 需最小化的代价函数 B. 需最大化的回报函数 C. 需满足的硬约束条件 D. 需最小化的能量函数 答案:C 关于约束条件的说法,以下哪项是正确的? A. 硬约束可以通…...
【EasyPan】项目常见问题解答(自用持续更新中…)
EasyPan 网盘项目介绍 一、项目概述 EasyPan 是一个基于 Vue3 SpringBoot 的网盘系统,支持文件存储、在线预览、分享协作及后台管理,技术栈涵盖主流前后端框架及中间件(MySQL、Redis、FFmpeg)。 二、核心功能模块 用户认证 注册…...
基于Java的不固定长度字符集在指定宽度和自适应模型下图片绘制生成实战
目录 前言 一、需求介绍 1、指定宽度生成 2、指定列自适应生成 二、Java生成实现 1、公共方法 2、指定宽度生成 3、指定列自适应生成 三、总结 前言 在当今数字化与信息化飞速发展的时代,图像的生成与处理技术正日益成为众多领域关注的焦点。从创意设计到数…...
电子电器架构 ---软件定义汽车的电子/电气(E/E)架构
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…...
Stable Diffusion 制作角色三视图
对于漫画创作,DPM 2M Karras和UniPC是高效且稳定的首选采样方法,结合Karras噪声调度可显著提升画面质量。若需进一步优化,可参考具体场景调整步数并辅以ControlNet等工具。避免使用随机性强的采样器(如Euler a)&#x…...
C++--负载均衡在线OJ
这是本人写的第二个项目,相比第一个代码量更少一些,但是此项目涉及linux中的内容更多,同样是干货满满,实现了 类似 leetcode 的题⽬列表在线编程功能,地址仓库:xwy/C学习项目 1. 所用技术与开发环境 C11和…...
【数字图像处理】彩色图像处理(1)
研究彩色图像处理的原因 1:利用颜色信息,可以简化目标物的区分,以及从场景中提取出目标物 2:人眼对颜色非常敏感,可以分辨出来几千种颜色色调和亮度,却只能分别出几十种灰度 彩色图像分类 伪彩色图像处理&…...
【Easylive】consumes = MediaType.MULTIPART_FORM_DATA_VALUE 与 @RequestPart
【Easylive】项目常见问题解答(自用&持续更新中…) 汇总版 consumes MediaType.MULTIPART_FORM_DATA_VALUE 的作用 1. 定义请求的数据格式 • 作用:告诉 Feign 和 HTTP 客户端,这个接口 接收的是 multipart/form-data 格式的…...
【python】copy deepcopy 赋值= 对比
上结论 写法是否独立是否安全修改copy() (用于一维列表)✅ 是独立副本✅ 安全deepcopy() (多层结构时用)✅ 是完全副本✅ 安全直接赋值()❌ 是引用❌ 改一个会影响另一个 一、.copy() 和 deepcopy() 有什…...
环形缓冲区容量耗尽解决方案
以下是针对环形缓冲区在时间窗口统计场景中容量耗尽问题的解决方案设计及优劣分析,结合搜索结果中的技术原理和工程实践: 一、核心问题定位 当环形缓冲区容量耗尽时,新数据覆盖旧数据会导致: 时间窗口统计失真:无法准…...
蓝桥杯 17.发现环
发现环 原题目链接 题目描述 小明的实验室有 N 台电脑,编号 1 ⋯ N。 原本这 N 台电脑之间有 N−1 条数据链接相连,恰好构成一个树形网络。 在树形网络上,任意两台电脑之间有唯一的路径相连。 不过在最近一次维护网络时,管理…...
数据库服务器架构
ORM ORM(Object Relational Mapping):对象与关系数据之间的映射 映射关系表: 类(class)—— 数据库的表(table) 对象(object)——记录(record…...
Netty前置基础知识之BIO、NIO以及AIO理论详细解析和实战案例
前言 Netty是什么? Netty 是一个基于 Java 的 高性能异步事件驱动网络应用框架,主要用于快速开发可维护的协议服务器和客户端。它简化了网络编程的复杂性,特别适合构建需要处理海量并发连接、低延迟和高吞吐量的分布式系统。 1)Netty 是…...
职坐标IT培训:人工智能职业跃迁路径
随着人工智能时代全面来临,职业发展格局正经历颠覆性重构。政策端,《新一代人工智能发展规划》与《生成式AI服务管理办法》双轨并行,既为行业注入动能,也划定了技术应用的合规边界。在此背景下,从业者需构建覆盖基础理…...
Redis 的单线程模型对微服务意味着什么?需要注意哪些潜在瓶颈?
Redis 的单线程模型是其高性能的关键因素之一,但这在微服务场景下既是优势,也可能带来潜在的瓶颈。理解这一点有助于我们在微服务架构中更好的使用Redis。 Redis 单线程模型的核心: 命令处理是单线程的: Redis 使用了一个主线程来接收客户端…...
Redis 有序集合(Sorted Set)
Redis 有序集合(Sorted Set) 以下从基础命令、内部编码和使用场景三个维度对 Redis 有序集合进行详细解析: 一、基础命令 命令时间复杂度命令含义zadd key score member [score member …] O ( k l o g ( n ) ) O(klog(n)) O(klog(n))&…...
C语言中联合体(Union)和结构体(Struct)的嵌套用法
联合体和结构体是C语言中两种重要的复合数据类型,它们可以相互嵌套使用,为复杂数据的表示提供了灵活的方式。 1. 联合体(Union)基础 联合体是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型。联合体的所有成员共享同一块内存空…...
Rust: 从内存地址信息看内存布局
内存布局其实有几个:address(地址)、size(大小)、alignment(对齐位数,2 的自然数次幂,2,4,8…)。 今天主要从address来看内存的布局。 下面以Str…...
分类算法中one-vs-rest策略和one-vs-one 策略的区别是什么?
LGBMClassifier 参数中,常使用objective: 这个参数定义了模型的目标函数。 而对于多分类问题,通常使用 multiclass 或者 multiclassova。multiclass 表示 one-vs-rest 策略,而 multiclassova 则是 one-vs-one 策略。 在机器学习领域&#x…...
新能源汽车充电桩运营模式的发展与优化路径探析
摘要:以民用新能源汽车充电桩为研究对象,在分析政府主导型、电网企业主导型及汽车厂商主导型三种运营模式特点的基础上,结合我国新能源汽车发展现状,提出汽车厂商与电网企业协同共建的联盟模式。通过构建涵盖政府补贴、建设成本与…...
【前端样式】用 aspect-ratio 实现等比容器:视频封面与图片占位的终极解决方案
在网页开发中,处理视频封面、图片卡片等需要固定比例的容器一直是前端工程师的必修课。本文将以 aspect-ratio 属性为核心,深入探讨如何优雅实现等比容器,并通过完整代码示例和常见问题解析,助你彻底掌握这一现代布局利器。 目录…...
redis常用的五种数据类型
redis常用的五种数据类型 文档 redis单机安装redis数据类型-位图bitmap 说明 官网操作命令指南页面:https://redis.io/docs/latest/commands/?nameget&groupstring 常用命令 keys *:查看所有键exists k1 k2:键存在个数type k1&…...
Cribl 利用表向event 中插入相应的字段-example-02
Working with Lookups – Example 2 Let’s assume we have the following lookup file, and given both the fields impact and priority in an event, we would like to add a corresponding ingestion-time field called severity. cisco_sourcefire_severity.csv im…...
SystemWeaver详解:从入门到精通的深度实战指南
SystemWeaver详解:从入门到精通的深度实战指南 文章目录 SystemWeaver详解:从入门到精通的深度实战指南一、SystemWeaver环境搭建与基础配置1.1 多平台安装全流程 二、新手必学的十大核心操作2.1 项目创建全流程2.2 建模工具箱深度解析 三、需求工程与系…...
归一化对C4.5决策树无效的数学原理与实证分析
一、引言 在机器学习的预处理流程中,归一化(Normalization)常被视作提升模型性能的"银弹"。然而,这一经验法则在决策树算法中却遭遇挑战——尤其对基于信息增益比的C4.5算法,归一化操作几乎不产生任何效果。…...
# 05_Elastic Stack 从入门到实践(五)
05_Elastic Stack 从入门到实践(五) 一、Elasticsearch集群之分布式文档(文档的写操作、搜索操作) 1、文档的写操作 1)新建、索引和删除请求都是写(write)操作,它们必须在主分片上成功完成才能复制到相关的复制分片上。 2)下面我们罗列在主分片和复制分片上成功新建、…...
n8n 中文系列教程_05.如何在本机部署/安装 n8n(详细图文教程)
n8n 是一款强大的开源工作流自动化工具,可帮助你连接各类应用与服务,实现自动化任务。如果你想快速体验 n8n 的功能,本机部署是最简单的方式。本教程将手把手指导你在 Windows 或 MacOS 上通过 Docker 轻松安装和运行 n8n,无需服务…...
Spark,从0开始配置Spark的local模式
1.启动虚拟机 2.通过finalshell连接虚拟机,并上传安装文件到 /opt/software下 3.解压spark安装文件到/opt/module下 tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/module/ 4.重命名,把解压后的文件夹改成spark-local。因为后续我们还会使用其他的配置…...
策略模式:优雅应对多变的业务需求
一、策略模式基础概念 策略模式(Strategy Pattern) 是一种行为型设计模式,它通过定义一系列可互换的算法族,并将每个算法封装成独立的策略类,使得算法可以独立于使用它的客户端变化。策略模式的核心思想是 “将算法的…...
性能比拼: Nginx vs Apache
本内容是对知名性能评测博主 Anton Putra Nginx vs Apache Performance 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 引言 在本视频中,我们将比较 Nginx 与 Apache 这两个 Web 服务器。我们将进行多项测试,并且实际上,在某些情…...
(7)NodeJS的使用与NPM包管理器
本系列教程目录:Vue3Element Plus全套学习笔记-目录大纲 文章目录 第1章 NodeJS1.1 NodeJS简介1.2 NodeJS下载1.3 Node基础入门1.3.1 控制台输出1.3.2 使用函数 1.4 NodeJS模块化编程1.5 NodeJS内置模块1.5.1 fs模块1.5.2 http模块 1.6 NPM包管理工具1.6.1 修改npm镜…...
策略模式:思考与解读
原文地址:策略模式:思考与解读 更多内容请关注:7.深入思考与解读设计模式 引言 你是否曾遇到过这样的情况:在一个系统中,有许多算法或策略,每种策略的实现逻辑相似,但在某些情况下需要进行替换和扩展&am…...
1.Vue3 - 创建Vue3工程
目录 一、 基于vue-cli 脚手架二、基于vite 推荐2.1 介绍2.2 创建项目2.3 文件介绍2.3.1 extensions.json2.3.2 脚手架的根目录2.3.3 主要文件 src2.3.3.1 main.js2.3.3.2 App.vue 组件2.3.3.3 conponents 2.3.4 env.d.ts2.3.5 index.html 入口文件2.3.6 package2.3.7 tsconfig…...
Spring MVC 执行流程全解析:从请求到响应的七步走
Spring MVC 的工作流程,漏了这一个今天刚好面试提到了,没回答出来,记录一下。 🧭 Spring MVC 整体执行流程一览(从请求到响应) ✅ 1. 请求发出:浏览器发送 HTTP 请求 如用户访问: …...
四元数转旋转矩阵
目录 gsplat 四元数转旋转矩阵等同代码实现 scipy 四元数转旋转矩阵替换代码 gsplat 四元数转旋转矩阵等同代码实现 import torch import torch.nn.functional as Fdef quat_act(x: torch.Tensor) -> torch.Tensor:return x / x.norm(dim-1, keepdimTrue)def normalized_q…...
Pytorch的极简transformer用于时间序列预测
本博客来源于CSDN机器鱼,未同意任何人转载。 更多内容,欢迎点击本专栏,查看更多内容。 目录 0.引言 1.数据准备 2. 网络搭建 3. 完整代码 4. 结语 0.引言 在【博客】中,我们基于tensorflow2.x深度学习框架搭建了transforme…...
垂直行业突围:工业软件在汽车、航空领域的 “破壁” 实践
在当今科技高速发展的时代,工业软件已悄然完成从通用工具到垂直行业 “战略武器” 的蜕变。特别是在汽车与航空这两大高端制造领域,工业软件的价值早已超越单纯的效率提升,成为关乎核心技术自主可控的关键要素,一场围绕工业软件的…...
人工智能在智能家居中的应用与发展
随着人工智能(AI)技术的飞速发展,智能家居逐渐成为现代生活的重要组成部分。从智能语音助手到智能家电,AI正在改变我们与家居环境的互动方式,让生活更加便捷、舒适和高效。本文将探讨人工智能在智能家居中的应用现状、…...
维度建模工具箱 提纲与总结
这里写自定义目录标题 基本概念事实表和维度表BI(Business Intelligence) 产品 事实表事实表的粒度事实表的种类 维度表建模技术基本原则避免用自然键作为维度表的主键,而要使用类似自增的整数键避免过度规范化避免变成形同事实表的维度表 SCD(Slowly Changed Dimen…...
Vue3 源码解析(六):响应式原理与 reactive
今天这篇文章是笔者会带着大家一起深入剖析 Vue3 的响应式原理实现,以及在响应式基础 API 中的 reactive 是如何实现的。对于 Vue 框架来说,其非侵入的响应式系统是最独特的特性之一了,所以不论任何一个版本的 Vue,在熟悉其基础用…...