自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 资源 (10)
  • 收藏
  • 关注

原创 Spring源码笔记之SpringIOC--(5)BeanFactory的扩展之ListableBeanFactory

设计只提供了获取单个Bean的能力,为了额外提供获取所有bean(List Beans)的能力,定义了。中获取所有bean的操作会不会去父容器parentBeanFactory中搜索呢?都需要提供遍历bean的能力,但是这是一个比较常用的能力。在spring中我们可能会有获取所有bean的需求,但是。BeanFactory扩展,提供获取所有Bean的能力。BeanFactory扩展,提供访问父容器的功能。BeanFactory扩展,提供自动注入的能力。工具类实现递归搜索父容器所有bean的诉求。

2024-02-20 08:00:00 1105

原创 Spring源码笔记之SpringIOC--(4)BeanFactory的扩展之HierarchicalBeanFactory

在实际使用过程会通过引用父容器parent实现BeanFactory的嵌套调用,如下。BeanFactory扩展,提供获取所有Bean的能力。提供配置、分析和修改bean定义,以及预实例化单例能力。先引用BeanFactory的类继承关系图来看一下。BeanFactory扩展,提供访问父容器的功能。BeanFactory扩展,提供自动注入的能力。Spring默认的BeanFactory实现。提供配置BeanFactory的能力。分层功能的扩展,它提供了。这种关系有点类似与单链表。

2024-02-19 08:00:00 879

原创 Spring源码笔记之SpringIOC--(3)什么是BeanFactory?

是SpringIOC的最顶层接口,涵盖了IOC容器最基本的操作。提供了IOC容器获取所有Bean、配置Bean的额外能力。所有的实现类持有所有Bean的定义,用一个唯一的字符串(即Bean的名字)区分。提供单例Bean(singleton scope)与多例Bean的能力(prototype scope),自从Spring2.0后Bean的作用范围不单单局限于单例与多例,还具有提供请求(request)与对话(session)级别的范围。是IOC容器注册Bean的入口,也是Bean配置中心。

2024-02-18 08:00:00 876

原创 Spring源码笔记之SpringIOC--(2)从BeanDefinition到Bean实例

BeanFactory扩展,提供获取所有Bean的能力。提供配置、分析和修改bean定义,以及预实例化单例能力。)提供了获取bean实例的方法。BeanFactory扩展,提供访问父容器的功能。BeanFactory扩展,提供自动注入的能力。Spring默认的BeanFactory实现。注册BeanDefinition接口。提供配置BeanFactory的能力。

2024-02-17 23:06:24 1375

原创 Spring源码笔记之SpringIOC--(1)从XML文件到Bean的描述对象BeanDefinition

会被递归调用,BeanDefinitionParserDelegate是类内的对象,所以为了保证递归调用时类内能够使用正确的Delegate,此处。的set中,如果能add说明Resource未被加载,等加载完成后再remove,避免重复加载相同的Resource。最开始学习spring的入门实践是,编写一个xml文件,然后利用spring读取xml文件中配置的bean。的注册过程,但是实际使用IOC过程中,并不是直接使用。编写代码加载这个bean,并获取bean的实例。具体bean的加载实现在。

2024-02-17 22:58:57 779

原创 Kubernetes入门笔记 ——(3)理解pod对象

一个有A、B两个容器的pod,如果使用docker拉起,那AB会存在依赖关系,如A先启动,B共享A的Volume等资源。Infra容器必须占用足够小的资源,它使用k8s.gcr.io/pause的特殊镜像,是一个由汇编语言编写、永远处于暂停状态的容器,只有100-200KB。所以对于Linux进程组中每一个进程,k8s中都需要一个单独的容器,这些容器需要互相依赖紧密合作,pod的概念就应运而生。容器和pod是什么关系?pod只是逻辑的概念,pod内的容器共享了某些资源,k8s引入pod目的是容器设计模式。

2023-12-09 17:42:00 634

原创 Kubernetes入门笔记——(2)k8s设计文档

​k8s最初源自谷歌的Brog项目,架构与其类似,主要包括etcd、api server、controller manager、scheduler、kubelet和kube-proxy等组件。: 负责资源的调度, 按照预定的调度策略将 Pod 调度到相应的机器上;:负责维护容器的生命周期,也负责磁盘(CVI)和网络(CNI)的管理。api server里又有认证、鉴权、REST接口、调度触发等模块。:负责维护集群的状态,比如故障检测,自动扩展、滚动更新等。:资源操作的唯一入口,并提供认证、鉴权等功能。

2023-12-06 23:55:24 934

原创 Kubernetes入门笔记——(1)Kubernetes是什么

容器比docker是一个更大的概念,一开始Google工程师便使用Linux的Namespace技术,将多个应用安装在一台服务器上并相互隔离。这样一个docker容器只能“看到”自己的进程,且网络、存储、计算等资源都是被隔离和限制的,类似于运行在一个沙箱中。Kubernetes是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、扩缩容、运维等功能。k8s集群提供了多个容器的编排、扩展、资源管理、运维等一系列功能,基于容器的部署更为方便,可靠性更高,是一个强大的容器管理框架。

2023-12-06 22:44:55 618

原创 日志框架LOG4J2系列六——log4j2使用包装器

slf4j+log4j2组合使用时,有时会使用包装器LoggerWrapper(装饰器LoggerDecorator)对原生的Logger能力进行增强,如修改日志的入参或对日志增加一些定位信息。,并在打印位置时使用它在每个日志事件中堆栈进行遍历,打印全限定类名(FQCN)的上一个堆栈的行号。没有指定FQCN,导致Log4j2认为FQCN是其内部的Logger,他的上一层日志事件是。期望日志为打印业务日志的类名与行号,使用log4j2的。发现log4j2打印的行号错误,都打印相同的行号,且是。

2023-11-02 12:07:09 608

原创 MapStruct使用指南(二)——MapStruct数据类型转换

如果Mapstruct有些场景不能完成,可以自定义转化方法// 自定义方法实现 static PersonDto toPersonDto(Person person) {} }也可以使用@Mapping的表达式属性expression显式指定某一个参数。注意expression不会自动导入,所以表达式中要使用其他类的方法,要带全类名(包名.类名.函数名)或者使用@Mapper的imports显式导入所需要的类。

2023-07-05 23:46:51 12661

原创 MySQL学习笔记(2)——MySQL的锁

1、MySQL索引的类型主要有哪些?B-Tree索引、哈希索引、空间数据索引(R-Tree)、全文索引、其他索引(聚簇索引、覆盖索引等)。2、常见存储引擎与其支持的索引?B-Tree索引:InnoDB,MyISAM,NDB(大部分存储引擎都支持)哈希索引: Memory空间数据索引:mysql功能并不完善, PostgreSQL数据库PostGIS较好全文索引:MyISAM聚簇索引: InnoDB覆盖索引:InnoDBB-TREE索引如何理解?...

2022-03-27 23:38:58 514

原创 MySQL学习笔记(1)——MySQL的并发、事务与MVCC

基本知识一、MySQL的并发、事务与MVCC1.1 MySQL的架构1.2 并发控制1.2.1 读写锁1.2.2 锁粒度1.3 事务1.3.1 事务的四个特性ACID1.3.2 死锁1.3.3 事务日志1.3.4 隔离级别产生的问题1.3.4.1 三种因隔离级别产生的问题1.3.4.2 事务的四种隔离级别1.3.4.3 修改事务的隔离级别1.3.5 事务的自动提交1.3.6 事务型表与非事务型表1.3.7 InnoDB隐式与显式锁定1.4 多版本并发控制(MVCC)1.4.1MVCC的特性1.4.2 Inn

2022-01-09 16:04:38 1195

原创 OpenAPITools使用——入门介绍与生成spring controller代码

摘要 本文介绍了API-First开发理念,即以API规范(如OpenAPI/Swagger)为核心驱动开发流程。通过OpenAPI Generator工具,可以直接从yaml接口文件自动生成服务端Controller代码和客户端SDK(如okhttp/feign)。文章演示了项目结构搭建、maven配置,并提供了一个包含ping和curl接口的yaml示例,展示了如何通过规范化的接口定义同步推进前后端开发,提高开发效率。项目已在GitHub开源,支持JDK21环境。

2025-12-25 08:41:12 322

原创 Java类加载机制——双亲委派与自定义类加载器

Java类加载机制摘要 Java类加载机制是JVM将.class文件加载到内存并转换为可用类型的过程,包括加载、验证、准备、解析、初始化等阶段。核心采用双亲委派模型,通过启动类加载器、扩展类加载器、应用程序类加载器的层级结构确保类加载的安全性和唯一性。该模型可防止核心类被篡改,避免类重复加载,同时为模块化系统提供基础。类加载器通过parent委派机制实现自上而下的加载顺序,必要时可通过重写loadClass()方法打破双亲委派(如热部署等场景)。Java 9模块化系统对类加载器架构进行了调整,废弃了传统扩展

2025-12-20 21:07:02 944

原创 Java的SPI机制——动态加载ServiceLoader

核心代码仅依赖接口,不直接引用实现类,避免了 “硬编码 new 实现类” 的耦合问题,修改 / 替换实现无需改动核心代码。最核心的价值:第三方只需遵循 SPI 规范实现接口、配置文件,无需修改原有程序,即可无缝接入扩展。)由核心框架 / 模块定义,实现类(如 MySQL/Oracle 驱动)由第三方提供;符合规范的第三方 / 模块化服务实现,无需硬编码依赖,支持可插拔的扩展。,常见的数据库驱动厂商分别有不同的实现,如Mysql的驱动常用的有。配置文件内容:每行写一个实现类的全限定名(支持多个实现)。

2025-12-07 15:35:59 701

原创 Maven BOM(Bill of Materials)使用指南与常见错误

Maven BOM(Bill of Materials)是统一管理依赖版本的核心工具,其本质是一个特殊Maven项目(pom类型),通过dependencyManagement节点声明依赖版本。主要优势在于统一版本控制、减少冲突和简化升级流程。使用场景包括:1)导入官方/第三方BOM(如Spring Boot)统一生态依赖版本;2)自定义BOM管理多模块项目共用依赖。使用时需注意固定格式(type=pom+scope=import)和版本继承规则。常见问题如依赖版本冲突可通过检查BOM覆盖范围解决。BOM是

2025-12-03 22:39:51 634

原创 AI入坑之路——(1)搭建本地的Python与Jupyter开发环境

本文介绍了如何搭建本地Python与Jupyter开发环境。首先需要安装PyCharm和MiniConda,然后配置Conda与Pip的国内源(阿里云和清华源)。接着使用conda创建Python 3.10环境并激活,安装指定版本的JupyterLab和ipywidgets。最后详细说明了如何在PyCharm中配置conda环境作为项目解释器。该环境搭建完成后,可同时使用PyCharm和Jupyter Notebook/Lab进行Python开发,适合数据科学、科研等场景。

2025-12-02 08:36:20 312

原创 高级系统架构师笔记——系统架构设计基础知识(3)软件架构风格

fill:#333;color:#333;color:#333;fill:none;软件架构风格数据流调用/返回以数据为中心虚拟机独立构件批处理管道-过滤器主程序/子程序调用面向对象风格层次型风格客户端/服务器风格仓库黑板解释器规则系统进程通信事件系统架构风格关键字简介数据流-批处理传统编译器,每个阶段的结果作为下个阶段输入一个接一个,以整体为单位数据流-管道过滤器与批处理区别在整体一个接一个,前一个输出是后一个输入调用/返回-主程序/子程序。

2025-11-05 22:27:33 814

原创 高级系统架构师笔记——系统质量属性与架构评估(1)软件系统质量属性

指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段事件内系统所能处理的事件的个数。

2025-11-03 23:11:15 935

原创 高级系统架构师笔记——软件工程基础知识(3)逆向工程与需求工程

"之间的一致性,确保所有的工作成果符合用户需求。需求跟踪的目的是建立与维护"逆向工程是设计的恢复过程。形成需求规格/需求文档化。确定目标系统的业务工作流。定义项目范围和高层需求。识别用户角色和用户代表。

2025-11-01 17:21:58 1127

原创 高级系统架构师笔记——计算机系统基础知识(1)冯诺依曼结构、哈弗结构与流水线结构

吞吐率(TP)是指。

2025-10-30 08:48:57 635

原创 高级系统架构师笔记——数据库设计基础知识(5)Armstrong公理系统、无损连接和有损连接

在关系数据库的模式分解中,无损连接和有损连接是判断分解是否 “保留原数据完整性” 的核心概念,直接影响数据的可恢复性。类型定义本质无损连接(Lossless Join)关系模式分解后,通过自然连接可完全还原原关系模式,无信息丢失。分解是 “可逆” 的,连接结果与原关系完全一致。有损连接(Lossy Join)关系模式分解后,自然连接的结果包含原关系中没有的元组,或丢失原元组,导致信息失真。分解是 “不可逆” 的,连接后数据出现冗余或缺失。

2025-10-19 12:00:14 2036

原创 高级系统架构师笔记——数据库设计基础知识(4)函数依赖、多值依赖与范式

范式核心目标(消除的问题)依赖类型业务场景复杂度1NF属性非原子性无最基础2NF非主属性的部分依赖函数依赖复合主键3NF非主属性的传递依赖函数依赖多表关联BCNF主属性的依赖问题函数依赖复杂主键4NF非平凡多值依赖多值依赖一对多独立关系5NF非平凡连接依赖连接依赖复杂多对多范式核心定义解决的核心问题(对上一范式的优化)仍存在的问题(为下一范式铺垫)1NF。

2025-10-19 10:22:23 972

原创 高级系统架构师笔记——数据库设计基础知识(1)数据库基本概念

按照不同的数据模型,可以将数据库的发展历史分为层次和网状数据库系统、关系数据库系统和第三代数据库系统3个阶段。层次和网状数据库系统层次模型采用树形结构表示数据与数据间的联系。树状结构除根结点以外的其他结点有且仅有一个双亲结点。上层和下一层类型的联系是1:n联系(包括1:1联系)。网状模型采用网络结构表示数据间联系,在网状模型中,允许一个以上的结点无双亲,或者一个结点可以有多于一个的双亲。关系数据库系统关系数据库系统采用关系模型作为数据的组织方式,在关系模型中用表格结构表达实体集以及实体集之间的联系,其最大特

2025-10-16 08:33:16 186

原创 高级系统架构师笔记——数据库设计基础知识(3)关系运算

聚集运算是关系代数运算中的一个非常重要的扩展。R÷S应当满足元组在X上的分量值x的象集Y,包含关系S在属性组Y上投影的集合。两个元数分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。关系R与S具有相同的关系模式,即R与S的元数相同(结构相同)。关系R与S的并由属于R或属于S的元组构成的集合组成,记作RUS,其形式定义如下,式中t为元组变量。θ连接:θ连接是从R与S的笛卡尔积中选取属性满足一定条件的元组。关系R与S具有相同的关系模式,关系R与S的交是由属于R同时又属于S的元组构成的。

2025-10-14 23:01:15 975

原创 高级系统架构师笔记——数据库设计基础知识(2)关系数据库基本概念

针对某一具体的关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求,由应用的环境决定。

2025-10-14 22:59:51 965

原创 Linux如何永久修改主机名

本文介绍了在Linux系统中永久修改主机名的方法:1)使用hostname命令查看当前主机名;2)通过hostnamectl set-hostname命令设置新主机名;3)编辑/etc/hosts文件确保新主机名能被解析;4)hostnamectl修改会立即生效无需重启。该方法解决了多机通信时IP变化导致配置变更的问题,适用于需要稳定主机名标识的Linux环境。

2025-09-27 10:42:25 205

原创 VMware虚拟机桥接模式如何修改ip地址

摘要:本文介绍如何在VMware虚拟机桥接模式下修改静态IP地址。步骤包括:1)使用群ping工具检测IP冲突;2)通过ip addr命令查看网卡名称;3)编辑网卡配置文件,将BOOTPROTO改为static并添加IPADDR等参数;4)重启网络服务(CentOS7/8命令不同);5)验证IP是否生效,必要时重启虚拟机。操作示例将192.168.0.104改为192.168.0.105,并提供了完整配置参数说明。

2025-09-27 10:00:34 331

原创 高级系统架构师笔记——软件工程基础知识(2)RAD/敏捷模型/CMM/CBSE

XP的基础和价值观是交流、朴素、反馈和勇气,加强交流;从简单做起;寻求反馈;勇于实事求是基于构件的软件工程(Component-Based Software Engineering, CBSE)是一种基于分布对象技术、强调通过可复用构件设计与构造软件系统的软件复用途径。CBSE体现了购买而不是重新构造的哲学。

2025-09-17 23:27:07 784

原创 高级系统架构师笔记——软件工程基础知识(1)软件过程模型

本文介绍了软件工程中常见的几种软件过程模型。主要内容包括:瀑布模型(严格串行阶段)、原型模型(快速获取需求)、V模型(测试驱动开发)、螺旋模型(结合原型与风险分析)、构件组装模型(基于标准化构件)以及统一过程模型RUP(用例驱动、迭代增量开发)。每种模型都有其特点和适用场景,如瀑布模型适合需求明确项目,原型模型适合需求不明确情况。RUP模型采用4+1视图描述体系结构,强调用例驱动和迭代开发。这些模型为不同项目需求提供了多样化的开发方法选择。

2025-09-02 08:46:00 1092

原创 ClickHouse常见问题——ClickHouseKeeper配置listen_host后不生效

官网地址:https://clickhouse.com/docs/zh/guides/sre/keeper/clickhouse-keeper。端口是ClickHouseKeeper的连接端口,报错原因为ClickHouseServer连接不上ClickHouseKeeper。再查看ClickHouseKeeper配置文件,默认配置路径为。查找官网文档也没说的很详细。重启ClickHouseKeeper。所以正常应该如下配置。

2025-09-01 23:49:51 1043

原创 ClickHouse——(1)ClickHouse是什么

ClickHouse是一款由Yandex开发的高性能列式存储开源OLAP数据库,专为海量数据实时分析设计。其核心优势在于极速查询性能,能在秒/毫秒级处理TB/PB级数据的复杂分析,广泛应用于数据仓库、日志分析和实时监控等场景。与传统OLTP数据库相比,ClickHouse采用列式存储、原生分布式架构,支持大规模并行处理,但不适合事务性场景。它牺牲事务完整性换取查询性能,属于AP系统,在CAP原理中优先保证可用性和分区容错性。ClickHouse适合大批量写入和批量分析查询,但不擅长单行操作和点查。

2025-08-24 11:35:24 867

原创 一场由LIMIT 1语句引发的惨案,LIMIT 1会影响MySQL索引选择?

MySQL慢SQL问题分析摘要 问题描述 MySQL 5.7环境下,针对user_activity_logging表的查询语句突然出现性能问题。该表包含用户活动记录,有user_id和create_at索引,以及存储大文本的content字段。原本正常使用idx_user_id索引的查询突然改为使用idx_create_at索引并触发全索引扫描,导致IO飙升。 关键现象 查询语句:查找特定用户最后一次提交记录 数据量:30万+记录,目标用户数据不足1000条 执行计划异常:从使用idx_user_id索引变

2025-08-17 21:20:28 1142

原创 MySQL执行计划解读

MySQL 执行计划(Execution Plan)是 MySQL 优化器为一条 SQL 查询生成的**详细执行方案**,它描述了数据库将如何执行这条查询,包括:将访问哪些表、使用什么索引、如何连接多个表、扫描多少数据行等关键信息。简单来说,执行计划就像查询的 “路线图”—— 优化器根据表结构、索引、数据量、SQL 语法等因素,计算出它认为 “最高效” 的执行方式,并以结构化表格的形式展示出来。

2025-08-17 19:59:45 929

原创 Docker之安装部署——(1)配置国内docker镜像源

本文介绍了如何配置国内Docker镜像源以加速镜像拉取。首先通过docker info检查现有配置,然后编辑/etc/docker/daemon.json文件添加USTC、网易云、七牛云等国内镜像源。文章特别说明部分云厂商镜像源(如华为云)仅限其服务器使用,并详细演示了阿里云镜像加速的配置方法,包括获取加速地址和测试网络连通性。最后通过重启Docker服务使配置生效,并成功启动MySQL容器验证配置。文末还提供了DockerHub国内镜像源列表链接供参考。

2025-08-15 23:48:00 849

原创 配置国内加速源后仍然无法拉取镜像

参考Docker/DockerHub 国内镜像源加速列表(长期维护-8月15日)https://blog.youkuaiyun.com/Numb_ZL/article/details/150412122?可以看到docker确实是首先吗访问阿里云加速地址,发现访问错误后再访问dockerhub镜像源。查看拉取镜像的过程日志,如果是17.06版本一下,可以另开一个shell窗口使用。已配置阿里云镜像源加速,但是看报错仍请求了国外的镜像源。已经配置了docker镜像源但是拉取镜像仍然报错。搜索阿里云制品中心的镜像。

2025-08-15 23:10:39 1189

原创 Docker/DockerHub 国内镜像源加速列表(长期维护-8月15日)

2025-08-15 08:43:15 339

原创 【工具使用】SFTP——远程同步神器

SFTP是VS Code的一款高效远程同步插件,支持FTP/SSH协议实现本地与远程服务器的文件实时同步。安装简单,只需在VS Code插件市场搜索安装。使用时,打开目标文件夹,通过命令生成配置文件,设置远程主机IP、用户名和路径。本地文件修改后,执行同步命令即可自动更新到远程服务器。测试显示,新建的mysql文件能快速同步至远端,验证了其便捷性和高效性,特别适合需要频繁进行远程文件操作的开发者,显著提升工作效率。

2025-08-04 08:41:49 627

原创 一起学前端之HTML------(2)HTML快速入门

内的元素才会在浏览器或HTML预览中可见。HTML 标题(Heading)是通过。使用相对路径时,可以使用如下符号。HTML 链接是通过标签。HTML 图像是通过标签。HTML 段落是通过标签。完整的HTML页面分为。属性中指定链接的地址。属性指定图像的来源,

2025-06-28 08:30:00 398

原创 一起学前端之HTML------(1)HTML 介绍

HTML是构建网页的基础标记语言,通过标签描述网页结构与内容。主要特点包括:使用成对标签(如<p>内容</p>)、由<head>和<body>组成页面结构、支持元素嵌套和超链接(<a>)、可插入图片视频等多媒体。示例展示了基础HTML文档框架,可通过浏览器或VSCode插件预览效果。HTML表单标签(<form>)还支持用户交互输入功能。

2025-06-27 08:32:54 346

群ping工具CPing

群ping工具CPing

2025-09-27

L1-Introduction to Reinforcement Learning

斯坦福强化学习 课件L1-Introduction to Reinforcement Learning

2018-04-09

基于STM32F4系列的4个编码器4倍频的转速解析程序

基于STM32F4系列的4编码器4倍频转速解析程序,程序有效,需要根据自己的配置更改有问题欢迎提问。

2019-01-03

基于STM32F4的霍尔编码器解析程序

基于STM32F4的霍尔编码器解析程序,可以做辨向和解析速度

2018-04-12

ROS机器人底层嵌入式程序STM32

ROS机器人底层嵌入式程序STM32ROS机器人底层嵌入式程序STM32

2018-04-12

模型预测控制(Model Predictive Control: Theory and Design)

模型预测控制(Model Predictive Control: Theory and Design)不是扫描版,很清晰

2018-04-08

C++程序设计教程(王珊珊)

C++程序设计教程(王珊珊)C++程序设计教程(王珊珊)

2018-04-10

ROS机器人程序设计

ROS机器人程序设计ROS机器人程序设计ROS机器人程序设计

2018-04-09

STM32F4开发指南-库函数版本_V1.1

STM32F4开发指南-库函数版本_V1.1(完整版)十分清晰可以下载

2018-04-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除