- 博客(46)
- 收藏
- 关注
原创 指定返回值字段
Autowired/*** 查询* @return*/@Data// 1// 2// 3// 4// 5/*** 从实体对象创建并转换为DTO对象* @param entity 原始实体对象* @return 转换后的DTO对象*/return dto;
2025-10-14 11:14:35
111
原创 微服务通信
微服务通信主要分为同步和异步两种模式。同步通信采用REST或RPC(如gRPC)实现即时响应,适用于需要立即结果的操作,但存在耦合性高和性能瓶颈问题;异步通信通过消息队列(如RabbitMQ/Kafka)实现松耦合交互,适合耗时操作和系统解耦,但需处理消息可靠性等挑战。面试时应分类阐述技术方案,结合实际项目经验,并关联服务发现、容错等知识点,以展示完整的知识体系。
2025-09-17 15:08:31
783
原创 线程安全和线程工具
本文介绍了线程安全的核心概念及实现方法。线程安全问题主要源于竞态条件、内存可见性和指令重排序。常用的线程安全工具包括:synchronized关键字(同步方法和代码块)、volatile关键字(保证可见性)、ReentrantLock和ReadWriteLock(灵活锁机制)、原子类(CAS操作)、线程安全集合类(如ConcurrentHashMap)。文章还分析了常见面试题,如synchronized与ReentrantLock的区别、volatile作用、CAS优缺点、线程池参数、死锁避免方法、Thre
2025-09-16 17:03:40
899
原创 订单超时处理解决方案
电商平台订单超时自动取消的三种实现方案对比。业务场景要求15分钟内未支付的订单自动取消并释放库存。方案分析:1)定时任务扫描(简单但延迟高);2)Redis过期监听(实时性好但非100%可靠);3)消息队列延迟(高可靠但复杂)。各方案均提供Java代码示例,包括订单实体类定义和具体实现逻辑。技术选型应综合考虑系统规模、实时性要求和复杂度,中小型系统可采用定时任务,高并发场景建议使用Redis或消息队列方案。
2025-09-16 15:34:20
646
原创 Java Map
本文总结了Java中HashMap、Hashtable和TreeMap的核心区别与特性。HashMap非线程安全,允许null键值,基于数组+链表/红黑树实现;Hashtable线程安全但不允许null,性能较差;TreeMap基于红黑树实现,保持键的有序性。重点分析了HashMap的底层原理,包括哈希计算、扩容机制和线程不安全的原因,以及解决哈希冲突的方法。同时探讨了TreeMap的排序原理,并推荐使用ConcurrentHashMap替代Hashtable实现线程安全。最后指出自定义对象作为HashMa
2025-09-16 15:09:54
1240
原创 常见的多态
Java多态是指同一方法在不同对象中表现出不同行为,核心三要素是:继承关系、方法重写和向上转型。多态通过"编译看左边,运行看右边"实现,JVM利用方法表动态绑定实际调用的方法。成员变量编译和运行都看父类,成员方法编译看父类、运行看子类,静态方法无多态性。多态提高了代码扩展性和可维护性,典型应用包括数据库连接、Spring框架IoC/DI等。使用时需要注意向下转型的类型检查,构造方法和私有方法不能被重写。多态是面向对象编程的重要特性,实现了程序设计的灵活性和扩展性。
2025-09-09 17:56:00
526
原创 工作流api调用
场景涉及服务主要 API 调用说明部署流程deploy()将 BPMN 文件部署到引擎,使其成为可执行的流程定义。启动流程根据流程定义的 Key 启动一个具体的实例。通常传入业务 ID 和变量。查询任务list()根据用户 ID、组、流程 Key 等条件查询待办任务列表。完成任务complete()推动流程前进到下一个节点。完成任务时通常需要提交表单数据(变量)。触发消息 / 信号触发一个中间捕获消息或信号事件,使流程继续。处理外部任务complete()
2025-09-09 17:21:10
1126
原创 Java 线程通信
线程通信的核心是通过共享内存或消息传递实现多线程协作,主要方式包括:1)synchronized结合wait()/notify()实现基础同步;2)更灵活的Lock/Condition机制;3)推荐使用的BlockingQueue内置线程安全容器;4)高级工具类如Semaphore、CountDownLatch和CyclicBarrier处理复杂场景。其中生产者-消费者模型是典型应用,使用while循环检查条件可避免虚假唤醒。相比sleep(),wait()会释放锁且需在同步块中使用。实际开发优先选择Blo
2025-09-09 15:40:38
883
原创 消息队列(MQ)从入门到精通实战指南
本文系统介绍了消息队列(MQ)的核心概念与实践应用。主要内容包括:MQ基础概念(异步通信、削峰填谷等)、常见工具(RabbitMQ/Kafka等)对比、环境搭建指南、核心功能实现(生产者/消费者模型)、高级特性(死信队列/集群配置)、性能优化方法及典型案例分析(订单系统/日志系统)。通过六个阶段的学习路径,帮助开发者掌握MQ从入门到实践的全套知识体系,并提供了进阶学习方向。文章特别强调了消息可靠性、系统高可用设计等关键技术要点。
2025-05-29 09:42:08
351
原创 级联树SELECTTREE格式调整
1、将全部列表设置成Map<Long, List<Obejct>> map的格式,方便查看每个父级对应的子列表,减少循环次数。2、对这个map进行递归,重新进行级联树的集合调整,将子集放置在对应的childs里面。
2025-03-13 10:31:51
370
原创 cascade\set null\noaction\restrict
外键的四个属性(CASCADE、SET NULL、NO ACTION、RESTRICT)定义了当主表(被引用的表)的数据被更新或删除时,从表(外键所在的表)应如何保持数据一致性。若客户表(Customers)中的某客户被删除,其所有订单(Orders)自动删除。允许从表记录暂时或永久不关联主表(如未分配客户的订单)。:删除主表记录时,同时删除从表的所有关联记录。当主表的记录被更新或删除时,自动对从表的。:更新主表主键值时,从表的外键值同步更新。主表记录被更新或删除时,从表的。若客户被删除,其订单的。
2025-02-11 17:33:00
921
原创 ER图设计符号含义
乌鸦脚符号:一条线段连接到一个开放的圆圈(表示“多”的一端)。乌鸦脚符号:一条线段连接到一个封闭的圆圈(表示“多”的一端)。乌鸦脚符号:一条线段连接到一个开放的圆圈(表示“一”的一端)。乌鸦脚符号:一条线段连接到一个封闭的圆圈(表示“一”的一端)。带箭头的线段:表示可选一或强制一关系,箭头指向“一”的一端。开放的圆圈(带箭头):表示关系的“一”端,可以是0个或1个。封闭的圆圈(带箭头):表示关系的“一”端,必须有一个。封闭的圆圈:表示关系的“多”端,至少有一个。陈氏符号:一条简单的线段,没有箭头。
2025-02-10 09:31:13
2049
原创 The bean ‘xxx.FeignClientSpecification‘ could not be registered.
名称,启动时会引发此异常。
2024-12-09 10:49:56
220
原创 gitee常见命令
git log、git reset --soft bbbb、git log(此时已经没有'aaaa'版本的提交记录了,本地工作区有代码,表示撤销成功,但是远程的版本还是在‘aaaa’这个版本,因此需要将当前版本强制推送)、git push origin HEAD:yanghui --force。【1.aaaa 这个版本提交的代码已经推送到远程,现在需要撤销已经push到远程的代码。撤销aaaa版本的提交,将aaaa版本代码保留到‘本地更改’工作区,可以继续更改。接下来将本地的版本和远程的版本同步,
2024-12-07 15:52:48
1638
原创 PGSQL:联合唯一索引的创建和删除
当联合唯一索引创建之后,PostgreSQL 会自动使用这个索引来优化涉及这些列的查询,包括删除操作。,它有多个列,你想在其中的几列上创建一个联合唯一索引。在执行删除操作时,务必小心,因为一旦删除,数据可能就无法恢复了。如果可能,建议先进行备份。‘idx_unique_columns’是‘联合唯一索引’的名称;是你希望在联合唯一索引中包含的列名。是你想要删除的行的对应列的值。是组成联合唯一索引的列,而。索引来快速找到并删除相应的行。上有一个联合唯一索引。
2024-12-02 09:22:45
1732
原创 The server selected protocol version TLS10 is not accepted by client preferences [TLS12]
找到"F:\Program Files\jdk\jdk1.8.0_301\jre\lib\security"的java.security文件;再执行java -verbose指令,会返回很多信息,其中就包含了JDK的安装路径。打开 java.security 文件,修改。查看使用的 JDK版本。再执行程序,问题解决。
2024-11-29 16:52:34
248
原创 TongRDS分布式内存数据缓存中间件
支持高达10亿级的数据缓冲,内存优化管理,避免GC性能劣化。高并发系统设计,可充分利用多CPU资源实现并行处理。数据采用key-value多索引方式存储,字段类型和长度可配置。支持多台服务并行运行,服务之间可互为主备,实现负载分担。数据同步采用独立队列,同步异常不影响主业务。支持数据有效期设置,过期数据自动回收。服务重启时可从其他服务获取在线数据,单台服务故障不影响整个系统。
2024-11-29 09:42:03
1863
原创 Spring的事务管理
tx标签用于配置事务管理用于声明和配置事务的相关属性指定一个事务管理器的引用,用于管理事务的生命周期。指定事务的传播属性,决定了在嵌套事务中如何处理事务。isolation指定事务的隔离级别,用于控制事务之间的隔离程度。timeout指定事务的超时时间,用于防止长时间的事务占用数据readOnly指定事务是否为只读事务,若为只读事务,则不允许对数据库进行写操作。指定需要回滚的异常类型,当出现指定的异常时,事务将回滚。
2024-11-29 09:19:19
1419
原创 find_in_set、string_to_array、unnest
pgsql函数:string_to_array() 可以将一个字符串转换为一个由分隔符分隔的字符串数组。sql函数:find_in_set() 某个值是否存在于一个字符串列表中。pgsql函数:unnest () 函数将一个数组集合展开为多行。-- unnest () 函数将一个数组集合展开为多行。FIND_IN_SET(‘2′,’1,2,3’) 结果是2。FIND_IN_SET(‘4′,’1,2,3’) 结果是1。可以将一个字符串转换为一个由分隔符分隔的字符串数组。
2024-11-29 08:38:11
587
原创 基于springCloud的灰度发布
单体项目包含多个模块,任意模块的修改都需要对整个项目进行编译、打包和部署简单来说就是,发布比较简单,但是耦合性比较高,出现问题需要整体项目打包。
2024-05-31 18:32:37
1479
4
原创 Win11 安装 Android 应用 教程
输入 adb install 'D:番茄.apk'或者 .\adb install 'D:番茄.apk'(请按照实际apk所在位置输入)6.在开始菜单可以看到新安装的安卓应用。原文链接:https://blog.csdn.net/m0_56076343/article/details/122334759。开始:先去任务管理器检查确定有没有开启。,执行以下命令即可安装。
2024-05-24 18:05:35
10562
3
原创 exists和not exists
exists和not exists返回的结果:true、false;查询过程中数据是和子查询相关联的数据作为判断。exists和not exists作为where条件,跟随主表返回的是主表的数据。not 恶习水头损失:表示不包含,与existss相反。exists:表示存在于。
2024-05-09 09:19:04
787
原创 队列QUEUE
同步:发出一个请求即为一个同步调用。(发出请求会得到响应,没有返回响应就会死等结果,需要注意在等待的过程中现成是激活的状态并没有暂停。异步:发出一个请求等待结果过程中,可以继续发出后续的请求。(这个结果会通过callback、状态或者通知的方式来告知调用方结果。异步经历两个步骤:1.调用方发起请求,2.服务提供方对请求的结果进行返回。单看一个请求的发起是同步操作,但是异步主要体现在只要有结果都会通过callback、状态或者通知的方式告知,因此不会存在同步的死等结果。
2024-04-28 11:20:52
3787
原创 Springboot项目启动报错 maxActive报错
检查启动脚本的配置文件,发现配打印日志的置文件全部是0和false,改正如下。检查“application-druid.yml”的配置文件,查看连接数。
2024-04-01 09:15:15
1155
1
原创 windows开放端口,外部链接访问不成功
远程主机A防火墙关闭,远程主机A部署成功项目,本地可以启动和访问,但是电脑B访问A时 候(通过外部链接),访问失败。
2024-03-19 10:17:34
3968
1
原创 Java总结
jdk:Java的开发工具包jre:Jdk开发环境jvm:是运行java字节码文件的虚拟计算机关系:JDK包含JRE,JRE又包含JVM,如图所示,其中jvm可以实现夸平台操作。byte、short、char、int、long、double、float、booleanString str1 = “abc“ 和String str2 = new tring(“abc“)区别_string str1 = "abc"; string str = "abc"; string st-CSDN博客Strin
2024-03-15 18:08:28
892
1
使用cursor+vercel搭建个人网页,并部署访问
2024-09-24
基于springCloud的灰度发布源码文件
2024-05-31
软件安装部署全部压缩包
2024-05-31
mysql环境配置、安装包
2024-03-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅