- 博客(37)
- 收藏
- 关注
原创 【Camunda】工作流
Camunda是一个开源的工作流和业务流程管理(BPM)平台,基于Java开发。它帮助企业设计、执行、监控和优化业务流程。Camunda Platform 8(新一代云原生版本) 基于云原生架构 支持Kubernetes部署 更强的可扩展性🔄 典型业务流程示例请假审批流程订单处理流程💡 Camunda的核心价值对企业 ✅ 提高效率:自动化重复性工作 ✅ 标准化:统一业务流程规范 ✅ 可追溯:完整的过程记录和审计 ✅ 灵活性:快速调整业务流程
2025-10-27 15:39:29
467
原创 ERP软件介绍
它用一个统一的软件,把销售、采购、库存、生产、财务等所有部门的数据连接在一起。销售可以查“客户欠款”,仓管可以查“库存余额”,老板可以看“利润表”。用你的账号密码登录,系统会显示你的“工作台”(待办事项、预警消息等)。:面向大型企业的商业创新平台,对标SAP、Oracle,生态强大。输入错误数据,输出的报表就是错的。你的工作是把你的工作内容准确、及时地“记录”到系统里。企业的明星产品,在制造业、科创企业中口碑很好。的大中型企业,特别是对财务模块要求极高的客户。,它提供全套成熟的解决方案,稳扎稳打。
2025-10-22 15:26:56
826
原创 Composer 版本不匹配问题:
2. 切换 Composer 镜像源(主要解决方案)3. 清除 Composer 缓存并重试 (这是重点,一定要做这步)5. 使用详细模式查看具体错误6. 临时禁用 SSL 验证(如果 SSL 证书有问题)7. 检查防火墙和 hosts 文件8. 使用备用方案:离线安装如果网络问题无法解决,可以考虑:9. 验证 Composer 配置📋 诊断步骤请运行以下命令输出结果:
2025-10-15 09:01:53
272
原创 【Vue】——Pinia
Pinia 以其简洁的 API、完美的 TypeScript 集成和模块化设计,成为了 Vue 状态管理的新标准。它通过抛弃mutations、提供直观的actions、灵活的修改方式(直接修改、$patchactions)以及强大的getters和$subscribe,极大地提升了开发体验。无论你选择 Options 风格还是 Composition 风格来编写 Store,都能享受到一致且愉悦的使用方式。对于新项目,强烈建议直接从 Pinia 开始。
2025-10-11 22:00:42
1141
1
原创 【Vue】——路由
Vue Router 是构建 Vue 3 单页面应用的基石。通过理解和掌握上述知识点——从基本配置、两种参数传递、嵌套路由,到更高级的编程式导航、Props 解耦和工作模式——你将能够构建出结构清晰、用户体验流畅的复杂单页应用。务必在实践中多加运用,以融会贯通。
2025-10-10 21:12:53
930
原创 【Vue】——生命周期、ref属性、hooks
在 Vue + TS 开发中,清晰的定义类型是类型安全的基础。定义对象的形状,主要用于定义Props、响应式数据、发射事件的结构。export:抛出import:引入@是跟文件路径自定义类型// 定义一个用户对象的结构id: number;email?: string;// 可选属性// 用于 Propsuser: User;// 用于响应式数据提高代码的复用性和类型安全性。Vue 的许多函数都是泛型函数。// 用泛型指定 ref 的内部值类型。
2025-10-09 22:03:17
1171
原创 【Vue 3 】——setup、ref、watch
setup是 Composition API 的入口和舞台。它是一个组件选项,在组件被创建之前、props被解析之后执行。1、数据2、方法return相当于把数据交出去执行时机:在生命周期之前执行,只执行一次。this的用法在setup内部,this不是该活跃实例的引用,因为setup是在组件被完全初始化之前调用的。所有对数据和函数的访问都直接通过响应式引用和上下文对象。参数:它接收两个参数:props:响应式的 props 对象。
2025-10-09 15:03:33
724
原创 【线程池】——实用场景
然而,对应的Value由于是强引用,只要创建它的线程没有结束(例如,是线程池中的线程,会复用不会结束),这个Value就会一直存在于线程的ThreadLocalMap中,但却永远无法被访问到(因为Key没了),从而造成。在现代高并发、大数据的系统架构中,线程池和相关的并发控制技术是保障应用性能、稳定性和可伸缩性的基石。单线程逐条插入性能极差,无法利用现代多核CPU的优势,导入过程耗时极长。线程池是并发编程中的“重型武器”,用于高效管理任务执行,其应用场景广泛,从数据批处理、并行查询到异步解耦都不可或缺。
2025-10-07 21:05:14
891
原创 【设计模式】
简单工厂模式又称静态工厂方法模式。它定义一个工厂类,根据传入的参数,动态决定创建哪一个产品类的实例。它并不属于GoF的23种设计模式,但它是学习更复杂工厂模式的基础。
2025-10-07 21:03:39
949
原创 【MyBatis】——执行过程
延迟加载,也称为懒加载,是一种对象关系映射(ORM)的优化策略。只有在真正使用到对象的关联数据时,才执行SQL语句去数据库查询加载,否则不加载。这可以有效减少不必要的数据库查询,提升性能。例如:查询Order(订单)对象时,其关联的User(用户)信息可能并不需要立即显示。使用延迟加载,只有在调用方法时,MyBatis才会发起查询获取User数据。特性一级缓存二级缓存作用范围SqlSession内部Mapper(Namespace) 级别,跨SqlSession默认状态开启,且不可关闭。
2025-10-07 20:04:55
773
1
原创 【Spring框架】——原理篇
3.pring解决的主要都是set注入:set注入是构造函授调用之后才完成的,循环依赖当然可以解决 因为对象都创建好了 只是算个半成品。@lazy:延迟加载,意思就是什么时候需要对象,再进行ban对象的创建,并不是说在去实例化的时候直接把对象给注入进来。2、三级缓存中为什么还需要二级缓存,因为对象都是单例的,都通过三级缓存创建的话可能会产生多例对象。懒加载就是先不去加载B,先把A对象创建出来,等到真正使用B的时候再去实例化B,,这是A已经实例化完毕了。例如:A依赖B,B也依赖A。
2025-10-07 18:39:13
606
原创 【实战场景】——开发中常见问题
需要一个独立的认证中心(CAS Server),所有应用系统(CAS Client)都信任该中心。登录成功后,认证中心会生成一个全局的、唯一的票据(Ticket),并携带此票重定向回原应用。在现代Java企业级应用开发中,单点登录、权限认证、数据安全、日志体系和问题排查是构建稳定、可靠、可维护系统的基石。其核心思想是:将权限(Permission)赋予角色(Role),再将角色赋予用户(User)。: Spring生态的事实标准,功能极其强大,与Spring框架无缝集成,但学习曲线较陡。
2025-10-06 17:21:03
843
原创 【JVM】——实战篇
作为Java开发者,深入理解JVM是迈向高级阶段的关键一步。本文将从参数设置、常用参数、调优工具到两大经典故障(内存泄漏和CPU飙高)的排查思路,为您提供一份完整的实战指南。JVM参数并非在代码中设置,而是在Java应用程序启动时通过命令行指定。根据不同的部署和运行环境,主要有以下设置方式:1、在war包中设置-Xms:初始化大小 -Xmx:最
2025-10-05 17:56:29
1244
原创 【JVM】——结构组成和垃圾回收
程序计数器示例说明:假如说线程1先执行到了第10行,时间片被线程2拿走了,会记录当前的行号,等拿回时间片时又会继续执行到第20行,依次类推。它屏蔽了底层操作系统和硬件的差异,为Java字节码提供了一个统一的运行环境。它拥有自己完善的硬件架构,如处理器、堆栈、寄存器等,以及相应的指令系统。永久代会随着动态加载的类不断增大,如果空间给小了会内存溢出,给大了又占用堆内存。垃圾回收器回收的是已经“死亡”的对象。Java中除了强引用,还提供了3种特殊的引用类型,它们的存在是为了。这5个阶段的顺序是确定的。
2025-10-05 10:59:47
1022
原创 【线程池】——核心原理
Java线程池是Java并发编程中的核心组件,它通过池化技术管理线程生命周期,减少了创建和销毁线程的开销,提高了系统的响应速度、资源利用率和可管理性。的方式来创建线程池,你可以清晰地指定所有参数,根据实际业务场景(CPU/IO密集型、任务量、硬件资源)进行精细化的调优和风险控制。创建了6个线程,2个核心线程,最大线程数是3,没有救急线程,时间是0毫秒,创建阻塞队列,决绝策略是直接抛弃。而是手动创建具有明确边界和监控的线程池,是构建稳定、健壮、可维护的并发程序的关键。工作队列的选择对线程池的行为至关重要。
2025-10-03 17:42:37
1010
原创 【多线程二】——线程安全
AQS(AbstractQueuedSynchronizer),即抽象队列同步器,是JUC并发包的核心基础组件。作用:它用一个int类型的volatile变量(state来表示同步状态,并提供了一个基于FIFO的等待队列(CLH队列的变种),用于构建锁和其他同步组件(如Semaphore等)。核心思想如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并将共享资源设置为锁定状态(state=1如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机制。
2025-10-02 21:39:28
664
原创 【多线程】——基础篇
可能导致“信号丢失”——如果唤醒的线程发现条件依然不满足而又自己wait了,而真正该被唤醒的线程却一直在等待,从而导致所有线程都永久等待(死锁)。在多核处理器成为主流的今天,有效地利用多线程技术是构建高性能、高响应应用程序的关键。希望这篇详尽的文章能帮助您彻底理解Java多线程的这些核心概念。并发关注的是程序的设计与结构,并行关注的是程序的执行状态。的,即通知目标线程“请你停下来”,由目标线程自己决定何时安全地结束。这是理解多线程的基础。这是一个经典的面试题,关键在于理解线程的生命周期。
2025-10-01 17:26:32
920
原创 【RabbitMQ】原理解析
问题核心解决方案关键点消息不丢失生产者确认 + 持久化 + 消费者手动ACK确保消息穿透整个生命周期的可靠性重复消费消费端幂等性唯一约束、乐观锁、全局ID死信/延迟队列DLX + TTL处理异常消息,模拟延迟任务;或使用官方插件消息堆积排查消费者 + 增加并发 + 惰性队列“开源节流”,优先保证消费者健康与性能高可用集群 + 镜像队列通过数据冗余和自动故障转移避免单点故障理解和熟练运用这些机制,能够帮助我们构建出更加稳定、可靠、健壮的基于RabbitMQ的分布式系统。
2025-09-27 17:54:56
1024
原创 【MySQL】性能优化与核心机制深度解析
本文将系统性地深入探讨MySQL数据库的性能优化实践、索引核心原理、事务机制以及高可用架构设计。内容涵盖慢查询定位、索引数据结构、事务特性、日志系统、MVCC、主从同步和分库分表等关键主题。MySQL性能优化是一个贯穿设计、开发、运维的系统工程。“先测量,后优化”。定位:通过慢查询日志和监控工具找到瓶颈。分析:使用EXPLAIN深入分析执行计划,理解SQL执行过程。解决首要是索引优化:理解B+Tree、聚簇/非聚簇索引、覆盖索引、最左前缀等原理,正确地创建和使用索引。其次是SQL优化。
2025-09-26 18:00:20
1138
原创 【Redis】分布式集群
Redis 的强大远不止于其简单的 API。从保证数据一致的分布式锁,到保障服务高可用的主从复制与哨兵机制,再到应对海量数据与高并发的分片集群,Redis 提供了一整套成熟的分布式解决方案。而其令人惊叹的性能,则是内存存储、精巧数据结构与单线程事件模型完美结合的成果。深入理解这些底层机制,将有助于我们更好地在设计系统时发挥 Redis 的优势,并规避其潜在的风险。
2025-09-25 15:54:39
836
原创 【Redis原理】缓存的内部逻辑
允许延时一致的业务,采用异步通知①使用MQ中间中间件,更新数据之后,通知缓存删除②利用canal中间件,不需要修改业务代码,伪装为mysql的一个从节点,canal通过读取binlog数据更新缓存强一致性的,采用Redisson提供的读写锁①共享锁:读锁readLock,加锁之后,其他线程可以共享读操作②排他锁:独占锁writeLock也叫,加锁之后,阻塞其他线程读写操作。
2025-09-24 22:07:37
1054
原创 【Axios 】web异步请求
Axios是一个基于Promise的HTTP客户端,专门为浏览器和Node.js设计。它的名字来源于"ajax"和"promise"的组合,体现了其设计理念:将异步的HTTP请求与现代的Promise模式相结合。统一的API设计:在浏览器和Node.js中使用相同的APIPromise支持:天然支持ES6 Promise,便于异步操作处理请求/响应拦截器:可以在请求发送前和响应返回后进行统一处理自动转换数据:自动将请求数据和响应数据转换为JSON格式客户端XSRF防护:内置跨站请求伪造保护机制。
2025-09-21 21:16:21
917
2
原创 【Spring AOP】 面向切面编程
Spring AOP 是一个强大的工具,可以帮助我们更好地模块化横切关注点,提高代码的可维护性和重用性。通过合理使用五种通知类型和切点表达式,我们可以实现各种横切逻辑,如日志记录、性能监控、事务管理和安全控制等。掌握 Spring AOP 需要理解其核心概念、熟悉切点表达式语法,并遵循最佳实践。希望本文能帮助你全面理解和应用 Spring AOP。Spring Framework 官方文档 - AOPAspectJ 编程指南。
2025-09-18 21:00:29
1015
原创 【 Java全局异常处理器】:从原理到实战
3. 自定义响应头:如需在响应中添加头信息,可在 @ExceptionHandler 方法中添加 HttpServletResponse 参数,手动设置头信息(如 response.setHeader("Content-Type", "application/json") )。全局异常处理器是Java项目(尤其是Spring Boot项目)的“异常统一门户”,它通过 @ControllerAdvice 和 @ExceptionHandler 实现异常集中处理,能显著提升代码质量和维护效率。
2025-09-15 19:12:07
1020
原创 git工具报错:SSL peer certificate or SSH remote key was not OK 解决方案
生成密钥ssh-keygen -t ed25519 -C "你的邮箱"复制公钥添加到 GitHub:在 Settings -> SSH and GPG keys 页面添加测试享受:使用来克隆项目这样配置一次之后,以后在这台电脑上使用 GitHub 都会非常方便和安全。
2025-09-12 20:30:39
1635
原创 【ECharts】强大的数据可视化工具
通过理解和实践上述内容,你将能够使用 Apache ECharts 创造出强大而美观的数据图表。这是一个简单的 POJO (Plain Old Java Object) 类,用于封装返回给前端的数据。使用 JavaScript 获取 DOM 元素,并基于它初始化一个 ECharts 实例。:这是最重要的部分,决定了图表的类型和核心数据。在 HTML 中创建一个 DOM 元素作为图表的容器,并为其设置宽度和高度。:在正式项目中,为了减小打包体积,建议使用按需引入的方式。只需简单四步,即可创建你的第一个图表。
2025-09-11 20:12:36
974
原创 【cpolar 使用指南】穿透内网,轻松实现公网访问!
在开发和运维过程中,我们常常会遇到一个难题:如何让本地局域网(例如公司内部网络或家庭网络)中的服务(如网站、数据库、远程桌面、监控系统等)能够被公网上的用户或设备访问?传统方案需要拥有公网IP并进行复杂的路由器设置,门槛高且不稳定。cpolar正是一款为解决此痛点而生的内网穿透工具。它就像一座搭建在您本地设备与公共互联网之间的安全桥梁,让您无需公网IP和路由器设置,就能轻松实现公网访问内网服务。cpolar 极大降低了内网穿透的技术门槛,是开发者、运维人员、物联网爱好者的得力助手。
2025-09-10 22:02:32
1452
原创 【WebSocket】双向通信
WebSocket 是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信--浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。注解作用生命周期关键参数定义端点的URI和配置类加载时value(URI路径)@OnOpen处理连接建立事件握手完成后Session@PathParam@OnMessage处理收到消息事件收到消息时Stringbyte[]Session@OnClose处理连接关闭事件连接关闭后Session。
2025-09-10 20:56:18
1026
原创 【Spring Task】 任务调度工具
是 Spring 框架提供的一套用于处理定时任务和异步方法执行的模块。它允许开发者以简单的方式配置和执行后台任务,无需依赖复杂的第三方调度框架。任务调度(Scheduling):在特定时间或周期性地执行任务。异步执行(Async Execution):让方法在独立的线程中运行,避免阻塞主线程。特性描述优势轻量级是 Spring 核心的一部分无需引入其他复杂依赖(如 Quartz)注解驱动通过@Scheduled@Async配置配置简单,开发效率高集成性好。
2025-09-10 16:39:36
1219
原创 【微信支付】固定流程
准备:获取商户号、AppID、API密钥。下单:构造参数、签名、调用【统一下单API】、验证返回、获取支付凭证(如code_url回调:编写一个接收POST请求的Controller,解析通知、验证签名、处理业务、返回成功响应给微信。安全:全程做好签名验证和幂等性处理。对于新项目,建议直接使用官方SDK和APIv3版本进行开发,可以事半功倍。希望这个详细的讲解对你有帮助!
2025-09-09 21:41:08
1138
原创 【计算机英语学习】:经常会见到的单词和句子
/** * @description Handles user login request * @param {string} username - The user's username * @param {string} password - The user's password */ (处理用户登录请求的描述,以及参数说明。(你能从主分支拉取一下最新代码吗?· 例: The endpoint for user login is /api/login. (用户登录的端点是 /api/login。
2025-09-08 22:58:43
464
原创 为什么不是什么数据都适合存储到MySQL?
缓存失效: 宝贵的数据库缓存(如 InnoDB Buffer Pool)会被巨大的 BLOB 数据快速填满,挤压掉真正需要快速访问的热点结构化数据(如索引、常用业务数据),导致缓存命中率暴跌。专业的数据应当交给专业的存储系统。在数据库表中,只存储图片/视频的唯一标识符(ID)、文件名、MIME 类型、最重要的文件路径或在对象存储中的 URL、大小、上传时间等元数据。丰富功能: 内置生命周期管理(自动转低频/归档/删除)、版本控制、访问控制、防盗链、图片处理(缩略图、水印)、CDN 无缝集成加速全球访问。
2025-09-07 23:52:25
427
原创 【vue3+elementplus】 快速构建精美前端工程!
Element:是饿了么团队研发的,基于Vue3,面向设计师和开发者的组件库。组件:组成网页的部件,例如 超链接、按钮、图片、表格、表单、分页条等等。
2025-09-07 18:03:03
904
原创 【数据采集之网路爬虫】如何获取网页信息?
爬取不同网站时,延迟时间需要根据目标网站的反爬策略调整。通常建议在 2 到 10 秒之间,对于反爬严格的网站可延长至 15 秒以上。过短的延迟可能触发反爬机制,过长的延迟会降低效率。即使设置了合理的延迟,仍需确保爬取行为符合法律法规和目标网站的服务条款。固定间隔的请求容易被识别为爬虫行为。使用随机化的延迟时间能有效降低被检测的风险。的时间间隔至关重要,既能避免被封禁,又能提高爬取效率。部分网站会明确要求爬虫的访问间隔,需严格遵守这些规则以避免法律风险。)向目标网页发送请求,获取网页的HTML内容。
2025-09-06 16:45:07
1906
原创 【Spring Cache】缓存数据
SpringCache是Spring框架提供的缓存抽象层,通过注解实现方法级缓存管理。核心注解包括:@Cacheable(查询缓存)、@CachePut(更新缓存)和@CacheEvict(删除缓存)。支持多种缓存实现(Redis、Caffeine等),通过CacheManager配置。文章还介绍了缓存穿透/击穿/雪崩的解决方案,并提供了包含数据库、Redis配置的完整实战案例,演示了增删改查操作中的缓存应用。通过@EnableCaching启用缓存功能,实现性能优化与业务解耦。
2025-09-05 19:28:00
886
原创 【MySQL】上来就干!
MySQL是一种开源的关系型数据库管理系统(RDBMS),采用结构化查询语言(SQL)进行数据操作。它由瑞典公司MySQL AB开发,现属于Oracle旗下产品。MySQL以其高性能、可靠性和易用性成为最流行的数据库之一,广泛应用于Web应用、企业级系统及嵌入式场景。MySQL权限管理用于控制用户对数据库、表、列等对象的访问权限,主要包括用户创建、权限分配及权限回收等操作。权限系统基于账户和权限表(如mysql.usermysql.db等)实现。
2025-09-04 20:47:46
1125
原创 【Java开发常用插件】 开发效率UP!
企业级项目:SonarQube + Spring Boot + Flyway + Kubernetes。简化 Java 代码,自动生成 getter/setter、equals、hashCode 等方法。- 轻量级项目:Lombok + Checkstyle + JUnit + Docker。- SBT(Scala 常用,但支持 Java):构建工具,适合混合项目。持续代码质量分析平台,支持插件扩展(如 Java 分析插件)。检测潜在的代码缺陷(如未使用的变量、重复代码)。
2025-09-02 23:57:08
563
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅