- 博客(89)
- 收藏
- 关注
原创 第5章:ShardingJDBC项目实战
摘要:本文介绍了基于JDK11和Sharding-JDBC实现数据库分表的项目配置过程。主要内容包括:1) 使用Maven配置项目依赖,包含Spring Boot、MyBatis Plus和Sharding-JDBC等组件;2) 创建订单数据库表结构,分为两个库和两个表;3) 配置数据源和分表策略,按用户ID进行水平分表;4) 通过单元测试验证分表功能,并指出当前存在的主键重复问题。项目实现了订单数据的分表存储,为后续解决主键冲突问题奠定了基础。
2025-12-04 08:00:00
20
原创 MybatisPlus
MyBatis-Plus是一个MyBatis的增强工具,在MyBatis基础上只做增强不做改变,简化开发、提高效率。主要特性包括:1. 内置通用Mapper/Service,减少SQL编写;2. 支持Lambda形式调用;3. 提供分页插件、性能分析插件等;4. 支持自动填充、逻辑删除等功能。快速入门需配置JDK8+环境,通过Maven引入mybatis-plus-boot-starter依赖。MyBatis-Plus支持三种整合方式:原生MyBatis+MP、Spring+MyBatis+MP和Sprin
2025-12-03 17:58:44
822
原创 第4章:分库分表常见中间件介绍和ShardingSphere极速认知
摘要:本文介绍了分库分表常见的中间件方案,包括TDDL、Mycat和ShardingSphere系列产品。重点对比了Mycat和Sharding-JDBC的差异:Mycat是基于Proxy的中间件方案,代码无侵入但性能较低;Sharding-JDBC是基于JDBC驱动的轻量级方案,性能高但有代码侵入性。详细解析了ShardingSphere的三大组件(JDBC、Proxy、Sidecar)及其适用场景,并介绍了分片算法中的关键概念如分片键、分片策略等。其中行表达式分片策略最常用,标准分片策略和复合分片策略适
2025-12-03 08:00:00
412
原创 第3章:水平分库分表常见策略介绍
水平分库分表常见策略包括range和hash两种。range策略按ID范围划分,优点是扩容简单但存在热点问题,可通过时间、空间维度优化。hash策略通过取模均匀分布数据,能避免热点但扩容复杂。实际应用中需根据业务特点选择合适方案,如活跃度差异大的业务可采用区域划分,追求数据均衡则适合hash策略。两种方法各有优劣,关键在于结合具体场景权衡选择。
2025-12-02 08:00:00
196
原创 第2章:海量数据下Mysql数据库常见分库分表介绍
本文系统讲解了MySQL数据库分库分表策略。垂直分表针对字段过多问题,将大字段、低频字段拆分;垂直分库按业务拆分,解决资源竞争问题。水平分表通过数据分片解决单表数据量过大问题;水平分库将表数据分布到不同服务器,降低系统负载。实施原则包括:垂直拆分需考虑字段使用频率和业务关联性,水平拆分要选择合适分片键避免数据热点。建议单表数据控制在百万级别,结合缓存、异步等技术综合优化。分库分表需提前评估业务增长,合理规划资源,在SQL和索引优化基础上实施。
2025-12-01 18:33:58
706
原创 第1章:Mysql数据库架构演变历史
MySQL数据库架构演变经历了单机、主从、双主到分库分表的演进过程。随着数据量和并发请求增长,需通过读写分离、索引优化、参数调优等软优化手段提升性能;当单库达到瓶颈时,再考虑分库分表解决连接数、IO、CPU等硬件限制。分库分表虽然能解决海量数据存储和高并发问题,但会带来跨节点JOIN、分布式事务、排序分页、ID重复、扩容规划等技术挑战。优化策略应根据业务场景循序渐进,优先考虑缓存、索引等方案,数据量极大时才采用分库分表。技术选型需权衡各中间件优劣,同时关注执行计划分析和SQL性能优化。
2025-11-30 19:56:42
555
原创 第3章:安装数据库和分布式存储
本文介绍了四种常见数据库的安装配置方法:1. MySQL通过Docker运行,配置端口映射、数据卷和环境变量;2. Redis提供容器版和源码版两种安装方式,容器版简单快捷,源码版需编译安装并配置;3. ElasticSearch 7.X同样提供容器版和源码版,容器版需配置内存参数和权限,源码版需调整JVM参数、系统限制和网络配置;4. 所有方法均包含详细参数说明和常见问题解决方案,如内存设置、权限配置和网络访问等。文中特别强调了ElasticSearch安装过程中的常见"坑点"及解决方
2025-11-29 15:01:23
141
原创 第2章:Linux服务器-Docker安装
Docker简介与使用指南 Docker是一个开源的应用容器引擎,允许开发者打包应用及依赖到可移植容器中,实现快速部署和资源隔离。核心优势包括"一次编译,四处运行"的跨平台特性。 安装步骤(CentOS) 安装依赖:yum install -y yum-utils device-mapper-persistent-data lvm2 配置阿里云镜像源加速 安装指定版本Docker并启动服务 常用命令 镜像管理:search/pull/images/rmi 容器操作:run/ps/stop
2025-11-28 08:24:49
379
原创 第1章:安装编译语言环境
本文介绍了Linux环境下JDK8/JDK11、Maven、Git和Python3.8的源码安装方法。主要内容包括:1) JDK安装步骤,包括解压、重命名和环境变量配置;2) Maven安装及环境变量设置;3) Git的yum安装;4) Python3.8的完整安装流程,涵盖依赖安装、编译配置、环境变量设置和软链接创建。所有安装均需配置/etc/profile环境变量并使用source命令使其生效。
2025-11-27 14:18:04
265
原创 第5章:AI智能医生实战
摘要:本文介绍了SpringAIAlibaba的快速入门指南,包括其特性对比、API-KEY获取、Maven依赖配置和YML文件设置。重点展示了如何开发AI智能医生助手项目,涉及Redis持久化存储、多用户会话隔离、流式响应等功能实现。详细讲解了MessageWindowChatMemory组件的作用及配置方法,并提供了完整的控制器代码示例,包括系统提示词模板设计和请求处理方法。项目采用Java21+SpringBoot3.5.3技术栈,通过Nacos实现动态配置,适用于企业级AI应用开发场景。
2025-11-26 10:06:36
312
原创 第4章:SpringAI工具调用Function Call
摘要:大模型存在知识滞后、能力边界、计算短板等原生局限性,无法直接获取实时信息或连接业务系统。工具调用(FunctionCall)作为LLM与外部交互的接口,能扩展AI能力、实现流程自动化并保障安全。SpringAI提供统一工具调用解决方案,通过@Tool注解定义功能,由FunctionCallAdvisor自动处理调用流程。示例展示了通过自然语言查询天气的多工具协调实现,验证了该方案在实时数据获取等场景的实用性。这种技术突破了大模型的能力限制,为业务系统集成提供了可行路径。
2025-11-25 08:00:00
156
原创 第3章:SpringAI进阶之会话记忆实战
摘要:本文介绍了SpringAI框架中AI大模型调用日志监控和会话记忆存储的实现。日志监控通过内置拦截器记录请求/响应内容,需配置DEBUG级别日志可见;会话存储通过ChatMemory接口实现多轮对话上下文管理,支持滑动窗口策略控制内存占用。文章还分析了常见问题如内存泄漏、Token消耗过大和存储性能瓶颈的解决方案,并提供了具体的代码配置示例。
2025-11-24 07:47:40
1168
原创 第2章:AI大模型知识和SpringAI核心案例实战
摘要:本文介绍了AI大模型的核心概念与SpringAI框架特性。主要内容包括:1)AI模型类型(聊天、嵌入、图像生成等)及其功能;2)关键概念如提示词、令牌、嵌入和结构化输出;3)RAG模式和工具调用机制;4)SpringAI的ChatClient与ChatModel区别及使用场景;5)默认系统配置和流式响应实现;6)提示词工程原则与角色划分;7)SpringAI中Prompt组件的应用方式。文章通过代码示例展示了SpringAI在实际开发中的集成方法,为开发者提供了AI模型应用的实践指导。
2025-11-23 19:00:32
831
原创 第1章:AI大模型大模型快速上手+SpringAI相关环境搭建
AI大模型(LLM)是具备文本生成、语义理解、推理及多模态处理能力的智能系统,广泛应用于政务、金融、教育等领域。直接调用API存在任务理解脱节、缺乏持续学习及安全风险等问题,因此需开发具备自主决策能力的智能体Agent(大模型+工具+记忆+规划)。主流大模型各有优势:OpenAI擅长复杂推理,通义千问适合中文专业领域,Claude3处理长文本,Llama3适合低成本部署。开发时可采用SpringAI框架,通过标准化接口集成多模态能力,构建企业级AI应用。
2025-11-22 09:30:19
727
原创 第1章:环境搭建
摘要:本文提供了四方保险项目的hosts配置和两种部署方法。hosts配置需将两个域名映射到127.0.0.1。方法一:使用远程虚拟机(IP:192.168.12.129)预装组件,包含Nacos、Redis、RabbitMQ等服务的访问地址和凭证。方法二:通过Docker Compose部署,包含MySQL、Nacos、Seata、RabbitMQ、XXL-Job等8个服务的详细配置,使用自定义网络(172.21.0.0/16)并设置容器固定IP。两种方式均提供完整的开发环境部署方案。
2025-10-10 09:39:28
249
原创 第2章:项目框架搭建
Vetur是Vue自带的插件,但是随着ts在项目开发中占比更大,我们发现Vetur在规范ts代码是并不严格。我们有检查以下代码,发现tsconfig.app.json的compilerOptions项,发现原来的配置被覆盖。发现@报错,于是要创建src\shims-vue.d.ts,编写以下代码,才可以让ts识别.vue类型的文件。这个项目我们选用的是代码检测宽松的Vetur插件,首先我们需要配置相对路径路径path。首先我们需要在main.ts注册基本需要的组件。然后配置vite.config.ts。
2025-10-04 08:46:40
458
原创 第7章:TS快速入门和前端项目初始化
本文介绍了TypeScript的基础知识及常见前端开发工具链的配置与使用。主要内容包括:1)TypeScript环境搭建、基本类型声明与类型检查机制;2)Git版本控制与远程仓库管理;3)Vue3开发效率提升工具如自动导入插件、响应式转换等;4)Ant Design Vue组件库按需引入;5)CSS框架Unocss的配置与特性;6)状态管理工具Pinia的使用及其持久化存储方案。文章重点讲解了如何通过各类工具和插件优化前端开发流程,提升开发效率。
2025-09-29 19:05:37
1192
原创 Webpack5 第五节
本文摘要: 文章介绍了Webpack中的关键优化技术:1)SourceMap配置(推荐eval-cheap-module-source-map),用于快速定位构建后代码错误;2)TreeShaking机制(仅支持ESModule),通过usedExports和TerserPlugin移除未使用代码,需注意副作用处理;3)缓存策略包括babel缓存和文件哈希(hash/chunkhash/contenthash);4)模块解析通过resolve配置路径别名和扩展名,externals可排除指定依赖打包。生产模
2025-09-28 13:35:18
293
原创 第6章:项目架构和数据库设计
系统架构是软件整体结构与组件的抽象描述,由相互依赖的若干部分组成,具有特定功能。架构包含层级、角色、关系和归类四个关键要素:同一层级的组件相互作用;角色决定系统功能;关系描述组件间的交互;归类则将相似功能的组件分组。架构设计通过工具如架构图、ER图和时序图来呈现系统结构,指导大型软件系统的开发。
2025-09-28 06:54:11
179
原创 第5章:前后端编码规范
文章摘要:本文介绍了前后端开发中的编码规范与调试技巧。前端规范包括主流公司的编码指南,并详细说明了四种命名法(小驼峰、大驼峰、下划线、中划线)的应用场景。后端部分阐述了Node的MVC分层架构和命名规则(接口路径用下划线,控制层/模型层用大驼峰)。调试方面,提供了VSCode调试前端代码的方法(Chrome控制台)和后端代码的断点调试步骤,同时指出Nuxt框架当前暂不支持VSCode调试。强调团队统一编码规范对提升开发效率的重要性。
2025-09-27 23:41:12
297
原创 Webpack5 第四节
本文介绍了Webpack打包环境的区分与代码优化策略。主要内容包括:1)通过配置不同环境变量实现开发/生产环境的区分;2)使用webpack-merge合并公共配置;3)多入口打包和代码分离技术,包括抽离公共代码、动态导入懒加载和预加载;4)利用BundleAnalyzerPlugin进行打包分析。这些方法能有效优化打包体积,提升应用性能,适用于多页面项目的构建需求。
2025-09-27 15:14:46
443
原创 第3章:云服务器环境安装
本文摘要:介绍了Docker在CentOS上的安装配置步骤,包括添加阿里云镜像源、安装指定版本Docker、服务启停及镜像仓库配置。同时详细说明了MySQL和Redis的Docker部署方法:MySQL通过数据卷挂载实现持久化存储;Redis作为高性能NoSQL数据库,支持多种数据结构,并提供了带密码保护的容器化部署命令。文中还包含常用Docker操作指令和容器状态查看方法。
2025-09-26 12:54:51
301
原创 Webpack5 第三节
文章摘要:本文介绍了Webpack中JS资源打包编译的关键配置,包括使用babel-loader将ES6+语法转换为ES5以实现浏览器兼容,通过eslint进行代码风格校验,以及webpack5新增的AssetModules资源模块处理方式。同时讲解了开发服务器的配置方法,包括自动更新、gzip压缩和接口代理设置,以提升开发效率和解决跨域问题。配置示例涵盖了图片/字体资源打包规则、eslint自动修正和devServer参数设置。
2025-09-26 11:13:45
514
原创 第4章:ORM框架-Sequelize
本文介绍了Node.js中ORM框架的基本概念和使用方法。主要内容包括:1)ORM框架作用及特点,2)Node主流ORM框架对比(TypeORM、Prisma、Sequelize),3)Sequelize框架的安装配置、模型定义和CRUD操作实现,4)使用SequelizeAuto自动生成模型,5)表关联查询(一对一、一对多关系),6)MySQL事务处理(托管/非托管事务)。重点演示了Sequelize的基本用法,包括数据库连接、模型同步、数据操作和事务处理,为Node.js开发者提供了完整的ORM实践指南
2025-09-26 09:25:55
1282
原创 Webpack5 第二节
摘要:本文介绍了Webpack配置文件的创建与优化,包括简化打包命令、自动生成HTML文件、CSS处理与优化等。通过webpack.config.js配置文件,可以设置开发模式、入口和输出文件路径。使用html-webpack-plugin插件自动生成HTML文件并支持多页面打包。对于CSS处理,介绍了css-loader和style-loader的基本用法,以及如何通过mini-css-extract-plugin将CSS代码抽离成单独文件。还讲解了CSS预编译语言(如Less)的配置、浏览器兼容性处理(
2025-09-25 11:12:24
611
原创 Webpack5 第一节
Webpack5是一个现代JavaScript静态模块打包工具,具有代码转换、压缩打包、热更新等功能。其五大核心概念包括:入口(Entry)、出口(Output)、加载器(Loader)、插件(Plugins)和模式(Mode)。使用前需安装Node环境,通过npm或cnpm安装webpack及相关依赖,初始化项目后即可进行打包操作。Webpack能有效提升开发效率,优化代码性能,支持不同环境的打包策略。
2025-09-24 20:43:13
428
原创 第2章:服务端渲染Nuxt4框架
本文介绍了使用Nuxt3框架搭建Vue项目的核心要点。首先说明了两种项目初始化方式:通过npx命令或模板下载。详细讲解了项目目录结构,包括关键文件如nuxt.config.ts、app.vue的作用。重点阐述了Nuxt的自动路由功能,通过在pages目录创建文件即可生成路由,无需手动配置。同时介绍了页面布局的实现方式,以及公共组件的使用规范。文章还讲解了声明式和函数式两种路由跳转方式及其传参方法,并演示了useFetch的数据请求用法。最后说明了如何通过useHead进行SEO优化设置,提升网站在搜索引擎中
2025-09-24 09:32:39
703
原创 第1章:SEO与性能检测
本文介绍了SEO搜索引擎优化的基本概念和实施方法。主要内容包括:1) 区分黑帽SEO和白帽SEO的特点及实现手段;2) 提升网站SEO的技术方法,如优化TDK标签、增强HTML语义化、服务端渲染(SSR);3) 通过Vue项目案例演示客户端渲染和SSR的区别;4) 使用Lighthouse工具进行网站性能检测。文章详细讲解了如何通过SSR技术解决单页面应用SEO优化问题,并提供了完整的代码实现方案。最后介绍了网站性能优化的关键指标和检测方法。
2025-09-23 13:34:31
916
原创 算法一刷 数组(上)
本文总结了四道经典数组算法题目的解法:1. 二分查找(704题)采用左右闭区间写法,通过比较中间值调整搜索范围;2. 移除元素(27题)使用快慢指针,快指针遍历数组,慢指针记录非目标值位置;3. 有序数组平方(977题)通过头尾指针比较平方值,从后往前填充新数组;4. 最小子数组(209题)运用滑动窗口动态调整窗口边界,寻找满足条件的最小区间。这些解法都利用了双指针技巧,时间复杂度均为O(n),体现了高效处理数组问题的通用思路。
2025-09-22 21:11:41
345
原创 第4章:构建自己的物料解决方案
本文介绍了Vue3移动端项目开发中的几个关键优化点:1. 通过响应拦截器简化后端数据获取;2. 使用动态rem基准值适配不同屏幕;3. 实现svg-icon通用组件;4. 开发滑块交互效果和popup弹窗组件;5. 利用vite的Glob功能实现组件自动化注册。重点展示了如何通过响应式编程和组合式API优化代码结构,使用vueuse库简化开发,以及如何设计可复用的通用组件体系。这些优化显著提升了开发效率和用户体验。
2025-09-21 22:24:03
741
原创 第3章:企业中vite配置方案
本文介绍了基于Vite构建的响应式项目开发流程,重点包括: 移动优先原则:采用TailwindCSS构建响应式系统,遵循移动端优先开发顺序 设备判断工具: 实现isMobile方法判断设备类型 使用vueuse优化响应式处理 提供两种判断方案:视窗宽度和UA正则匹配 项目配置: 配置Vite别名@指向src目录 设置代理服务器解决跨域问题 通过.env文件管理环境变量 路由架构: 根据设备类型动态加载移动/PC端路由表 组件按设备类型条件渲染 数据请求: 封装axios请求 处理不同环境下的API地址切换
2025-09-21 21:41:04
785
原创 第2章:定制化高可用前台样式
本文介绍了Tailwind CSS的安装与配置流程,以及其原子化CSS的设计理念。通过Vite项目演示了如何安装Tailwind CSS及相关依赖,并配置适用路径。文章对比了行内样式、原子化CSS、传统形式和组件形式四种CSS设计模式的优缺点,说明Tailwind采用原子化CSS的优势。此外还介绍了Prettier代码格式化工具的配置,以及推荐的项目目录结构。Tailwind CSS通过预定义的实用类实现了样式统一,同时保持高度可定制性,解决了传统CSS开发中样式复用难、响应式实现复杂等问题。
2025-09-20 09:29:21
236
原创 第1章:项目前言
本文对比了webpack和vite两种主流前端打包工具的性能差异。大型项目中vite构建速度显著优于webpack,原因在于webpack会全量构建项目,而vite采用按需构建策略,将模块分为依赖和源码两部分,仅构建必要内容,并利用浏览器原生ESM能力。对于CommonJS兼容性问题,vite通过依赖预构建功能解决。文章还提供了环境配置指南,包括Node.js 16.13.1、npm 8.1.2和vite 2.8.0的安装方法,以及项目初始化步骤。
2025-09-19 15:35:19
499
原创 第6章:计算机内存实战
本文介绍了Linux系统中swap交换分区的配置与优化方法。主要内容包括:1) swappiness参数的意义及调整方式(0-100范围,默认60);2) 通过dd命令创建swap文件并激活使用的详细步骤;3) free和top命令查看系统内存使用情况的参数解析,重点说明available与free内存的区别;4) top命令输出的各项指标详解,包括CPU、内存、进程状态等关键信息。文章提供了从swap配置到系统监控的完整操作指南,帮助用户优化Linux内存管理。
2025-09-17 20:28:12
708
原创 第5章: 计算机内存
本文系统介绍了计算机内存管理的核心机制与优化策略。首先解析了内存类型(ROM/RAM)及虚拟内存原理,通过MMU实现虚拟地址到物理地址的转换。重点阐述了分页管理机制,包括多级页表设计(页目录+页表)以节省空间,以及惰性分配引发的缺页异常处理。针对内存不足问题,提出交换分区(Swap)解决方案,详述swappiness参数配置建议及常见页面置换算法(OPT/FIFO/LRU/CLOCK)。特别指出Java应用和Kubernetes集群通常需禁用Swap以避免性能损耗。全文由浅入深,涵盖内存分配、地址转换、存储
2025-09-16 22:45:46
1410
原创 Java面试小册(4)
【Q】:Java中final,finally,finalieze各有什么区别?【Q】:JDK9为什么将String的char数组改为byte数组?【Q】:一个线程中Java被调用两次start()方法,会发送什么?【Q】:Java中的Option类是什么?【Q】:为什么Java中编写代码时会遇到乱码?【Q】:栈和队列再Java中的区别是什么?【Q】:Java中的自动装箱和拆箱?【Q】:Java中的IO流是什么?【Q】:什么是Java的网络编程?【Q】:Java中的基本数据类型。
2025-09-15 13:00:00
857
原创 Java面试小册(3)
【Q】:BigDecimal为什么可以保证精度不丢失?【Q】:new String(“”)会创建多少个对象?【Q】:什么是Java中的BigDecimal?【Q】:Java中的深拷贝和浅拷贝有什么区别?【Q】:什么是Java的Integer缓存池?【Q】:什么是Java泛型的上下界限定符?【Q】:Java中的类加载过程是怎么样的?【Q】: 什么是Java的SPI机制?【Q】:Java泛型的作用是什么?【Q】:Java泛型擦除是什么?
2025-09-14 23:31:14
975
原创 第4章:CPU进阶命令
本文详细介绍了Linux性能分析工具pidstat和vmstat的进阶用法,重点解析了CPU上下文切换的监控与分析。通过pidstat可监测进程/线程的自愿和非自愿上下文切换情况,vmstat则提供系统级的CPU、内存、I/O等全局统计。文章还阐述了CPU上下文切换的四种场景(系统调用、进程、线程、中断)及其性能影响,并通过sysbench模拟高负载场景,演示如何综合运用uptime、mpstat、pidstat等工具定位性能瓶颈。最后对比了不同工具中wait指标的含义差异,强调等待CPU与等待I/O的状态
2025-09-14 21:58:20
1125
原创 第3章:CPU实战
本文深入解析了Linux系统中CPU平均负载与CPU使用率的区别及其监控方法。主要内容包括:1)CPU平均负载的定义与查看方法,指出其反映的是活跃进程数而非CPU使用率;2)CPU使用率的详细指标分析,包括用户态、内核态等不同状态;3)通过mpstat、pidstat等工具进行性能诊断的方法;4)使用stress工具模拟CPU密集型、I/O密集型等不同场景的性能测试案例。文章强调了两者的关键区别:CPU密集型任务会导致负载和使用率同时升高,而I/O密集型任务可能负载高但使用率不高,为系统性能监控和优化提供了
2025-09-12 16:30:02
1023
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅