- 博客(48)
- 资源 (2)
- 收藏
- 关注

原创 多线程同步与任务完成等待机制总结
在多线程编程中,合理的同步机制能够有效地协调多个线程之间的执行顺序,确保任务按照预期执行。常见的同步机制包括和Phaser。接下来,我们将通过具体场景加伪代码示例来介绍这些同步工具的应用。在 Java 中,不同的同步工具有不同的适用场景。根据项目的具体需求,选择合适的同步机制能提高并发性能并避免线程安全问题。:用于等待所有线程完成,适合任务依赖的场景。:适用于多线程到达某个同步点后一起继续执行,常用于周期性任务。:适用于处理异步任务,能灵活地组合任务。:适用于确保一组任务完成后执行汇总操作。
2025-01-14 11:28:42
1281

原创 扫普通链接二维码打开小程序 动态匹配参数
为了提高活动预约效率,公司希望通过微信小程序,让用户扫描二维码提前预约活动,避免现场排队。具体流程如下:后台管理系统自动生成包含活动ID、活动名称等参数的二维码,用户扫描二维码后,能够跳转到小程序的活动预约页面。【核心点:二维码中 要动态传递多个参数】
2025-01-10 18:02:25
1390

原创 Spring Cloud Feign Client 中 @Qualifier 使用问题及解决方案
使用全限定类名。显式指定 FeignClient 的contextId。简化配置,通过类型直接注入(适用单实现场景)。这些方法可以有效提升项目代码的健壮性和可维护性,同时避免常见的 Spring Bean 注入问题。
2024-12-29 02:03:41
483

原创 前后端数据格式转换:日期字符串到时间戳的最佳实践
/ 定义日期格式 DateTimeFormatter formatter = DateTimeFormatter . ofPattern("yyyy-MM-dd");// 转换为 LocalDate LocalDate localDate = LocalDate . parse(dateStr , formatter);
2024-12-19 17:23:28
379

原创 IDEA中service启动类是灰色,而且启动类经常自动消失解决方法
原因:IDEA启动大于5个Services的时候就会让新启动的变成灰色,并且重启IDEA之后在Services里找不到相关启动类。通过调整设置增加保留的启动服务数量,解决自动消失的问题。此方法适用于 IDEA 2023.2.1+ 版本。
2024-11-14 10:39:06
836
1
原创 微服务无感发布实践:基于Nacos的客户端缓存与故障转移机制
客户端侧:缩短缓存刷新周期 + 启用故障转移机制;服务提供者侧:优雅停机流程 + 主动心跳同步;基础设施侧:Nacos集群高可用 + Kubernetes生命周期钩子;监控验证:通过Nacos控制台、Ribbon调试日志及链路追踪(如SkyWalking)实时监控实例状态。通过上述方案,即使服务实例A的两个节点同时下线,客户端仍能在5秒内完成服务列表更新,用户侧请求成功率可达99.99%。
2025-04-08 11:09:45
249
原创 在Spring框架中使用AspectJ实现AOP(面向切面编程)
封装横切关注点(如日志、事务)的模块,通过@Aspect注解标记类,包含和的定义。定义需要拦截的目标方法,使用表达式(如execution)描述匹配规则。指定切面逻辑在何时执行,分为五种类型:•:方法执行前•:方法执行后(无论是否异常)•:方法正常返回后•:方法抛出异常时•:包裹目标方法,可控制其执行流程。</</</</</</</在Spring Boot主类添加•Spring默认使用JDK动态代理(需接口),若目标类无接口则切换为CGLIB。
2025-04-01 11:11:41
895
原创 Centos7拉取编译运行SpringBoot【自动化部署脚本】
根据您的需求,这里是为脚本添加了自定义工具路径的改进版本,包含路径检查和环境变量设置:更新说明:路径配置灵活性:• 新增、、三个可配置路径• 用户可指定自定义安装路径,留空则自动检测系统路径• 路径检查包含有效性验证(存在性、可执行性)智能路径处理:增强环境验证:• 安装完成后显示各工具版本信息• 严格校验路径有效性,避免错误配置导致后续失败路径优先级规则:使用建议:自定义路径使用场景:生产环境推荐配置:• 建议显式指定路径以确保版本一致性• 关闭自动安装功能(
2025-03-24 15:26:41
753
原创 MySQL 中如何解决深度分页的问题?& MySQL中 join、inner join、left join、right join区别
方法优点缺点适用场景子查询 + 覆盖索引支持跳页,通用性强依赖联合索引设计需频繁分页且允许跳页记录最大 ID性能最优,复杂度低仅支持连续分页连续分页(如瀑布流)适合复杂搜索,分布式性能好维护成本高,ES 需额外学习高并发搜索+分页场景核心要点索引设计是优化基础,确保覆盖索引和排序字段匹配。权衡业务需求,优先选择游标分页(记录max_id)或延迟关联(子查询)。搜索引擎适用于复杂查询,但引入额外组件需评估成本。
2025-02-27 18:55:25
1026
原创 Spring Boot 自定义 Starter 完整实战手册
若需支持 Spring Boot 3.x,需 JDK 17+ 并检查依赖兼容性。:Spring Boot 2.7+ 已弃用。中的参数映射到 Java 对象。
2025-02-27 11:26:03
1111
原创 搭建 Hadoop 3.3.6 伪分布式
的路径,在集群格式化的时候,必须保证不存在!文件中的映射数据,复制到Windows下的。1.下载二进制Linux版的文件。Web UI 界面 9870。端口和 YARN Web。命令设置密码(请替换。
2025-02-20 21:17:29
786
原创 Java 设计模式实践:工厂模式、建造者模式、单例模式与事务回滚机制
设计模式作用代码实现工厂模式统一创建对象,解耦代码单例模式只创建一个工厂实例,节省内存建造者模式支持链式调用,提高可读性事务回滚机制操作失败时回滚,保证数据一致性。
2025-02-17 17:10:28
711
原创 使用 CMake 自动管理 C/C++ 项目
CMake 是一个强大的构建系统,可用于跨平台管理 C/C++ 项目的编译过程。本文件提供了一种自动化的方式来管理 C/C++ 项目,包括创建代码目录、自动编译所有源文件、管理输出文件等。
2025-02-05 17:03:05
1512
原创 生产环境中常用的设计模式
Spring 容器通过IoC和DI大幅简化了应用程序中对象的管理和依赖的配置,极大提高了开发效率和代码质量。动态获取 Bean、注解配置等功能为复杂业务场景(如策略模式)提供了便捷的实现方式。策略模式定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的的客户。这个策略模式的定义是不是有点抽象呢?那我们来看点通俗易懂的比喻:假设你跟不同性格类型的小姐姐约会,要用不同的策略,有的请电影比较好,有的则去吃小吃效果不错,有的去逛街买买买最合适。
2025-01-16 18:13:29
1265
原创 深入浅出 Javax.Validation:校验注解全解析与实战指南
NotNull(message = "用户名不能为空") private String username;@NotBlank(message = "密码不能为空") @Size(min = 6 , max = 20 , message = "密码长度必须在 6 到 20 个字符之间") private String password;@Email(message = "邮箱格式不正确") private String email;
2025-01-15 16:19:55
830
原创 RuoYi Cloud项目解读【四、项目配置与启动】
* 中,项目启动需要将这些配置文件加载到配置中心,所以需要额外配置一下Nacos,以增加对mysql数据源的支持。Nacos配置好之后,启动成功后访问:http://localhost:8848/nacos 账号/密码。当上面环境全部准备好之后,接下来就是项目配置。当后端,前端都启动成功之后,若依(RuoYi-Cloud) 项目就算运行成功啦。若依(RuoYi-Cloud) 配置中心的项目配置文件,持久化在**MySQL IP、端口、账号、密码、数据库等。Minio IP、端口、账号、密码、桶。
2025-01-08 15:56:51
1273
原创 RuoYi Cloud项目解读【三、环境准备】
项目运行离不开语言支持,若依(RuoYi-Cloud)后端为Java项目,需要java环境,前端为Vue项目,需要Node.js环境,运行若依前需要将这些环境安装成功。若依(RuoYi-Cloud)目前使用的数据库暂时只有MySQL跟Redis,后续可以根据项目需要添加其他数据库,比如MongoDB,Elasticsearch等。项目运行前提需要准备环境,如果项目提供文档,直接看文档操作即可,如果没有文档,就结合开发经验/项目经验来配置。进入bin目录启动,执行seata-server.bat命令。
2025-01-08 15:55:40
810
原创 RuoYi Cloud项目解读【二、项目上手技巧】
这些项目可能是由个人、小团队或组织开发,其开发方式和治理模式可能与传统的标准开源项目有所不同。标准开源项目,都是有一个README.md这种文档,这个文档是项目的简介,一般会用大白话方式讲清楚项目背景,项目技术点,项目具体使用等。没有使用Maven/Gradle传统项目,比如Java SE/JavaWeb项目,Jar依赖一般放置在lib文件夹,优先找它。没有文档的帮助,只能借助代码结构名称大体推测项目可能具有模块,拥有的功能。要求:结合技术栈,想象一下代码可能的结构,后续项目解读时有参照蓝本。
2025-01-08 15:53:38
974
原创 Spring Boot 多环境配置与切换
通过以上配置,Spring Boot 项目可以实现环境的无缝切换,提升了开发和部署的效率,同时降低了配置出错的风险。在打包过程中,Maven会根据指定的Profile将配置文件中的占位符(如)替换为对应Profile中定义的属性值。例如,使用testProfile打包时,将被替换为。
2025-01-06 16:03:29
1097
原创 Java 控制台彩色输出工具类详解
ANSI 转义码是一种控制终端显示属性的标准方式,可以用来设置文字颜色、背景颜色以及其他效果。通过工具类,我们可以轻松地为控制台输出添加颜色和样式,大幅提升日志信息的可读性和分类能力。无论是调试代码还是展示结果,该工具类都能为您提供极大的便利。希望本篇文章对您有所帮助!如果有任何问题,欢迎留言讨论。
2025-01-01 12:06:18
545
原创 Docker搭建Skywalking
注意:oap版本和agent版本需要适配,版本不适配可能会出现页面无法访问、agent上报不到页面等问题。部署 SkyWalking OAP 服务器0. 启动临时容器【通过创建一个临时的测试容器来复制配置文件,反推配置】目录结构说明路径说明配置文件目录日志文件目录数据存储目录复制 SkyWalking 配置文件到宿主机移除临时容器1. 使用默认存储(H2 数据库)启动 SkyWalking OAP 容器,使用 H2 数据库作为存储:容
2024-12-31 22:05:43
1694
原创 Docker搭建Jenkins
先准备配置目录和持久化目录,举个栗子:下载Maven: maven 3.9.4配置Maven国内镜像源配置Maven jar包保存路径下载JDK17: JDK Development Kit 17.0.8拉取官方jenkins镜像启动一个临时容器【通过创建一个临时的测试容器,用来复制配置文件,来反推配置】复制jenkins的配置文件到宿主机中移除临时容器运行镜像英文版查看启动日志进入jenkins容器内部查看防火墙【开放端口】
2024-12-30 10:37:34
1400
原创 Docker搭建RocketMQ
先准备配置目录和持久化目录,举个栗子:设置目录权限,避免容器内无法写入日志文件:2.创建容器共享网络RocketMQ 中有多个服务,需要创建多个容器,创建 docker 网络便于容器间相互通信。3.拉取官方RocketMQ镜像4.创建配置文件进入 目录,创建并编辑 配置文件: 配置内容:5.启动NameServer启动 NameServer 容器:6.启动 BrokerNameServer 启动成功后,再启动 Broker 容器,使用 配置文件。7.启动 Ro
2024-12-30 10:33:43
564
原创 Docker安装RabbitMQ
为容器重新分配一个伪输入终端,通常与 -i 同时使用;: 以交互模式运行容器,通常与 -t 同时使用;注:前者是外围访问端口:后者是容器内部端口。: 后台运行容器,并返回容器ID;如下命令可后台启动tomcat。
2024-12-30 10:22:10
918
原创 Docker安装Seata
启动一个临时容器【通过创建一个临时的测试容器,用来复制配置文件,来反推配置】Seata运行在docker容器中对应的目录如下:移除临时容器配置数据源Seata-Server端存储模式(store.mode)现有file、db、redis三种,file模式无需改动,直接启动即可。注: file模式为单机模式,全局事务会话信息内存中读写并持久化本地文件root.data,性能较高;如果是seata分布式集群时推荐使用Redis或者DB模式,,步骤如下:在库中运行脚本:【Seata提供的MySQ
2024-12-30 10:20:39
1107
基于官网最新稳定版 redis 6.2.6 版, Windows x64 平台源码编译
2022-03-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人