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

原创 微信小程序支付+Java后台实现(完整版)
在开发微信小程序支付的功能前,我们先熟悉下微信小程序支付的业务流程图:不熟悉流程的建议还是仔细阅读微信官方的开发者文档。一,准备工作事先需要申请企业版小程序,并开通“微信支付”(即商户功能)。并获取一下参数:appid=******** //小程序appidmchid=******** //小程序绑定商户idkey=***************** //商户后台设...
2019-05-27 20:01:01
49212
34
原创 langchain对接 Invalid ‘tools[0].function.name‘: string does not match pattern.........异常
本人很好奇,看网上其他博主的视频,同样用1.0.0-beta3版本,tools中funcation name定义为中文,就没问题,为啥我的就不行呢?专门去看了github,github上已经有人提了issues。按日志分析,意思是tools中定义的function name与正则表达式 ^[a-zA-Z0-9_-]+$ 不匹配,按这个正则只能定义为大小写字母、数字和下划线及-。下面的很多回收,大概说的意思就是可能是funcation name中包含了空格等特殊字符造成。然后重启项目,发起调用,就好了。
2025-06-14 00:30:16
116
原创 9个很实用的Java开发技巧:包含代码和详解
在大伙的日常Java 开发中,总会有一些技巧,能够很好的帮助我们提高代码质量和项目的开发效率。这里,我来给大家分享下具体的技巧实践,并附上实际案例,帮助大家在实际工作中,可立刻应用起来。需要根据不同的场景,选择 ArrayList、LinkedList、HashMap、TreeMap中合适的数据集合结构处理数据。合适的集合数据结构,可以提升程序性能,比如:HashMap 适合做快速查找,TreeMap 适合用在排序的场景等。良好编码习惯,合理的注释和统一规范,是成熟团队必不可少的。
2025-06-12 19:56:21
619
原创 深入刨析向量数据库:基本原理与流程实现
然而,AI 的搜索是基于概率驱动,在AI的应用场景里是基于对搜索词的语义揣测,进行相似度匹配,如:找内容“相似”的文本或图像。这时向量搜索大显身手:它根据向量之间的距离(如:欧氏距离、余弦相似度)来查找距离最近的向量,从而找到语义相近的项。制,向量数据库能够在一毫秒到几毫秒的时间内,从千万甚至亿级规模的数据中检索出相似项,这正是ANN索引的强大所在。通过优化磁盘I/O的访问模式,DiskANN能在一台64G内存的设备上处理十亿规模及以上的向量数据,并在保持95%以上召回率,同时将查询延迟控制在毫秒级。
2025-06-10 20:45:49
263
原创 MySQL性能调优:Mysql8高频面试题汇总
而在RR隔离级别下,则是同一个事务中的第一个快照读才会创建Read View, 之后的快照读获取的都是同一个Read View,快照读生成Read View时,Read View会记录此时所有其他活动事务的快照,这些事务的修改对于当前事务都是不可见的。InnoDb存储引擎有两大类索引聚集索引和普通(辅助/二级)索引,聚簇索引的叶子节点存储行记录,因此InnoDb必须要有聚簇索引且仅有一个聚簇索引,而普通索引的叶子节点只存储索引值和主键值,所以,通过聚簇索引一次性能获取所有列的数据,普通索引一般不行。
2025-06-06 08:41:01
1045
转载 MySQL性能调优:Mysql8新特性
软删除:就是我们在线上会经常删除和创建索引,如果是以前的版本,我们如果删除了索引,后面发现删错了,我又需要创建一个索引,这样做的话就非常影响性能。灰度发布:也是类似的,我们想在线上进行一些测试,可以先创建一个隐藏索引,不会影响当前的生产环境,然后我们通过一些附加的测试,发现这个索引没问题,那么就直接把这个索引改成正式的索引,让线上环境生效。函数索引基于虚拟列功能实现。函数索引在MySQL中相当于新增了一个列,这个列会根据你的函数来进行计算结果,然后使用函数索引的时候就会用这个计算后的列作为索引。
2025-06-04 19:56:55
11
原创 Java Stream实现List排序的核心技巧
对于JDK8以下环境,建议使用Collections.sort()或实现Comparable接口。以下是Java Stream实现List排序的6个核心技巧及代码示例。Stream排序会创建新集合,不影响原集合(非原地排序)。MySQL性能调优:库设计优化、查询优化、配置及硬件优化等。大数据量排序时,建议先构建字段映射关系提升性能。目前推荐使用的JDK版本分析总结。5,并行流加速(大数据量场景)6,自定义比较器(复杂排序逻辑)目前推荐使用的JDK版本分析总结。1,自然序排序(正序)2,反向排序(倒序)
2025-05-30 21:18:40
195
转载 MySQL性能调优:库设计优化、查询优化、配置及硬件优化等
一条查询语句在经过MySQL查询优化器的各种基于成本和规则的优化会后生成一个所谓的执行计划,这个执行计划展示了接下来具体执行查询的方式,比如多表连接的顺序是什么,对于每个表采用什么访问方法来具体执行查询等等。MySQL使用的是内部的临时表。正如上边的查询计划中所示,UNION 子句是为了把id为1的查询和id为2的查询的结果集合并起来并去重,所以在内部创建了一个名为<union1,2>的临时表(就是执行计划第三条记录的table列的名称),id为NULL表明这个临时表是为了合并两个查询的结果集而创建的。
2025-05-27 07:55:33
34
原创 目前推荐使用的JDK版本分析总结
随着Java的升级迭代,目前已有很多版本,那么,在企业级开发中,到底使用哪个版本呢?基于每个版本的特性、版本间的差异,及生态兼容及支持等,:支持至2026年,适合尚未完全适配新特性的保守型项目;Spring Boot:3.x版本最低要求JDK17,2.x版本兼容JDK8/11。:新项目首选,尤其适用于需要高并发、低延迟的云原生应用和微服务架构。提供更深入的技术分析,希望帮助到所有开发者,在使用时做出最佳选择。:稳定优先的企业级项目,或需逐步升级的遗留系统过渡版本。
2025-05-23 07:50:33
888
原创 SonarQube工具安装详解,能帮你Review代码、安全审计等质量管理
为什么今天要推荐SonarQube呢?这话题要从一次客户的项目交付说起。当时服务要部署入驻到客户方的机房,按要求向信息中心提交申请后,却被告知需提供《服务器安全漏洞扫描报告》和《代码安全审计报告》。按照惯例,这些报告一般由第三方做网络安全的公司提供,但谁知客户不想花钱找第三方公司,最后商量要我方用开源工具扫描,并修复完向他们提供报告。这如何是好,做与不做?似乎没有选择,必须做。开始找开源的质量管理工具。
2025-05-20 10:18:58
839
原创 Java对象内存模型、如何判定对象已死亡?
如果是64位系统,最大支持 2^64, 但是对其填充是按照8字节进行填充,指针压缩可以理解为在32位系统在64位上面使用,因为32位系统的CPU寻址空间最大支持4G,对其填充*8 = 32G,这就是内存>32G指针压缩失效的原因。使用句柄访问,会在堆中开辟一块内存空间作为句柄池,句柄中储存了对象实例数据(属性值结构体) 的内存地址,访问类型数据的内存地址(类信息,方法类型信息),对象实例数据一般也在heap中开辟,类型数据一般储存在方法区中。长期存活的对象进入老年代。动态判断对象的年龄。
2025-05-20 07:56:05
597
转载 Spring Boot 常用的注解整理全集
总结: Spring & Spring Boot 常用注解极大地便利了开发,它们遵循“约定优于配置”的理念,通过简单的注解声明即可完成以前繁琐的XML配置或手动编码工作。是 Spring Boot Test 提供的注解(org.springframework.boot.test.mock.mockito.MockBean),用于在 Spring 测试上下文中添加一个由 Mockito 模拟的Bean,并替换掉容器中原本该类型的Bean(如果有)。常用于在 Web层或服务层测试中,模拟依赖的Bean行为。
2025-05-19 07:45:39
39
原创 Spring Boot 配置明文密码加密,防泄漏
在Spring Boot应用中,出于安全考虑,通常不推荐在配置文件中明文存储数据库、Redis等密码。为了安全管理密码,今天给大家推荐一个安全好用实现,请往下看!Redis8.0全新亮相,开启开源新时代,内置全新数据结构...在配置文件中,用上面工具生成的加密串,替换明文密码。【JAVA多线程】JDK中的各种锁,看这一篇就够了。在工具类生成加密串时必须与配置文件中保持一致。Java 8 到 Java 24 新特性一览。Java 8 到 Java 24 新特性一览。现在的背调,都可以这么玩了?
2025-05-16 20:33:05
370
原创 Java 8 到 Java 24 新特性一览
本文整理了 Java 8 至 Java 24 各版本的新特性,内容包括每个版本的新增功能分类(如语法增强、性能优化、工具支持等)、详细的代码示例,并结合官方文档资料,分析每项特性的应用场景及优缺点。Java 8 发布于 2014 年,此后 Java 进入快速迭代模式,每半年发布一个新版本。一路走来,Java 8 到 Java 24 带来了大量重要的新特性。Java 8 新特性发行时间: 2014 年 3 月语言特性Lambda 表达式与函数式接口:Java 8 引入了 Lambda 表达式,使我们能够将匿名
2025-05-15 20:40:00
974
转载 MySQL复合查询全解析:从基础到多表关联与高级技巧。
为什么最终的年薪是NULL呢,因为我们在表中发现有人的奖金是NULL,而我们的年薪计算方式就是月薪*12 + 奖金,而NULL是不参与计算的,因此最终的结果就是NULL,所以我们需要使用函数ifnull(comm,0),这样就把所有为NULL的数字变成0。内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。子查询语句出现在from子句中。查询和10号部门的工作岗位相同的雇员的名字,岗位,工资,部门号,但是不包含10自己的。
2025-05-15 07:53:54
21
原创 现在的背调,都可以这么玩了?
更狠的玩法,招聘公司的人,会通过网络手段,找到你前公司得几个同事和领导,按他们背调的问题,挨个问A、B、C等一遍,然后根据几个人的反馈,确认你提供的信息是否与调查的一致。说到最后,现在正在求职或将要求职的兄弟们,针对背调这件事,我们一定要谨慎应对,同时这也是对公司德行的一次展现。这一顿骚操作下来,你的信息基本就被人家了如指掌,甚至可能连你自己都记的不太清的事,统统记录在人家的人事档案中。那么,一般被调都调查些什么呢?严苛的公司,最直接有效的办法,就是保持你提供的信息真实,就不用担心被。也要勇敢地说 NO!
2025-05-14 20:50:11
533
转载 【JAVA多线程】JDK中的各种锁,看这一篇就够了
否则,返回false。说到JDK中的阻塞队列,其核心就是AbstractQueuedSynchronizer,简称AQS,由双向链表实现的一个元素操作绝对安全的队列,用来在锁的实现中维护阻塞在锁上的线程上的队列的这个角色。当一个线程已经持有一个锁,并在持有该锁的过程中再次尝试获取同一把锁时,如果没有重入机制,第二次请求会被阻塞,因为锁已经被自己持有。接下来要考虑的是拒接策略,当前锁被持有期间,后续的请求线程该怎么处理,当然可以直接拒绝,JAVA的选择委婉点,选择了允许这些线程躺在锁上阻塞等待锁被释放。
2025-05-13 20:31:06
26
原创 Spring AI基于DeepSeek实战,使AI开发更高效
今天介绍了SpringBoot项目中,对Spring AI(基于DeepSeek模型)的集成接入,整个接入过程比较简单。展示,而对于对话流输出的,我只是测试,前端没做具体的值相应截取拼接,看起来就是Response的一堆重复Json串,但不影响测试结果。目前的Java开发社区,可接入的AI主要有 Spring AI 和 Spring AI Alibaba 两个。一个面向人工智能工程的开源框架,旨在为Java开发者提供方便的AI集成能力。计,简化AI功能的接入步骤,同时保持与Spring生态的无缝兼容。
2025-05-11 18:27:12
863
原创 Redis8.0全新亮相,开启开源新时代,内置全新数据结构...
作为全球最受欢迎的开源内存数据库,Redis凭借其高性能、灵活的数据结构和丰富的功能,成为现代应用中缓存、会话存储、实时分析等场景的核心组件。Redis 8.0 的发布标志着其从“内存数据库”向“实时数据智能平台”的跨越式演进,为 AIoT、实时分析等新兴领域提供了基础设施级支持。(由 Redis 创始人 antirez 设计),专为矢量数据优化,可直接处理机器学习模型的向量化结果,为 AI 推理、相似性搜索等场景提供原生支持。内存分配策略,极端负载下内存碎片率降低 15%,长期运行稳定性显著提升。
2025-05-07 20:21:05
891
原创 SonarQube | 一个能帮你Review代码、安全审计不可缺少的质量管理工具。
似乎没有选择,必须做。由于本人以前在外企的工作经验,那时同事提供过来的代码检查报告,文档及内容展示等比较友好,能快速定位问题,由处理意见等,我似乎进入寻找曾经的那个“样子”,最终,SonarQube满足了需求。SonarQube服务实际搭建的过程中,还会有很多的问题需要处理,这里不做一一的赘述,如果你关系或想了解更多的相关内容,可关注此公众号,在我的获取本人联系方式,进行一对一交流讨论,欢迎骚扰!放好后,重启startsonar.bat,重新扫描刚才的代码,进入主页,就会出现more的标签。
2025-05-05 21:01:59
727
原创 IDEA 2025.1正式发布,AI能力有重大更新
更新包括更智能的代码补全,对 OpenAI GPT-4.1(即将推出)、Claude 3.7 Sonnet 和 Gemini 2.0 Flash 等新云模型的支持,基于 RAG 的高级上下文感知,以及直接从聊天进行多文件编辑的新编辑模式。IntelliJ IDEA 2025.1 添加了对 Angular 17.2 信号查询的支持、更智能的反应式表单补全,以及对基于指令选择器的主机绑定特性的代码补全支持,还包括在绑定表达式中创建字段的快速修复。以前,解析与代码高亮显示同时运行,导致延迟并提供不明确的反馈。
2025-05-02 20:50:43
679
原创 Java17已成主流
自Spring官方发布Spring Boot 3.0之后,最低支持Java17,而最近Nacos3.0发布,最低也支持Java版本到Java17。目前国内Java分布式微服务项目,后端技术栈基本都是基于SpringBoot+SpringCloud Alibaba生态实现,这无疑是对微服务环境和架构的又一次升级,致使Java17也已成为当前主流。开发者可结合项目需求,优先采用密封类、模式匹配等特性,逐步迁移至模块化架构以应对复杂系统的挑战。支持直接调用本地代码(如C/C++库),提升与底层系统交互的效率。
2025-05-01 10:01:46
626
原创 SpringBoot3.x版本新特性
GraalVM 是 Orace 在 2018年发布的一个全新的通用全栈虚拟机,并具有高性能、跨语言交互等逆天特性,不仅支持了 java、ScalaGroovy、Kotin 等基于 JVM 的语言,以及 C、C++ 等基于 LLVM 的语言,还支持其他像 JavaScipt.Ruby、Pvthon 和 R语言等。Spring Boot 现在已经成为了实事上的脚手架框架了,让学习和开发变得更简单,同时这版本的淘汰节奏也让我感觉技术更新实在太快了,所以我们也要不断保持学习,不然也会跟着淘汰。
2025-05-01 10:01:46
494
原创 IT微服务时代,企业到底该不该用微服务架构开发?请看过来,这里给你讲透
时至今日,微服务架构在企业项目开发中,已成为主流,似乎从大公司到几人的团队,都在使用微服务开发。但现实中,中小公司或小团队,虽然在使用微服务架构,甚至开发了一两年的软件项目,依旧有团队成员,对微服务一知半解,更离谱的是,连开发团队的主要成员或leader,也不知道微服务的真实模样,完全靠自己的想法,搞一套牛头不对马嘴的架构,开发公司的主要或核心项目。微服务项目中的pom依赖,不做全局管理,不进行按模块按需使用,混乱依赖导致每个服务部署包小则一两百MB,大则五六百MB,一个最简单的文件上传服务包也不例外;
2025-03-27 20:04:02
940
原创 Linux Centos系统安装Mysql8.0详解
本文是基于服务器Linux Centos 8.0系统 安装 Mysql8.0真实运维工作实战为例,详细讲解安装的全过程。
2023-11-30 15:07:27
1391
原创 精选的10款Java开源项目,建议收藏
目前国内的IT开源环境还是相当不错,但是国内开发注重是应用,创新有但不多,从榜单可以看出,专门搞技术的还是少数,结合项目实践的占大多数,分享给大家,架构的时候可以参考这些解决方案。1,z...
2021-01-26 09:26:36
4710
原创 Redis缓存雪崩、穿透、击穿应对及常见精选面试题
随着互联网技术的持续发展,各种类型的应用层出不穷,使得当今成为云计算、大数据盛行的时代,因此也对应用的性能要求更高,高并发低延迟、海量数据流量、大规模集群管理已成基础要求。为了克服这些问...
2020-09-04 10:02:51
902
原创 SpringCloud微服务项目实战 - 缓存详解及高效缓存接入
缓存,已经是现在系统中必不可少的内容,如何使用好缓存,对系统的性能和效率至关重要,这里我就来分析一下使用缓存的正确姿势吧。如今的微服务项目,都是前后端分离,上面就是简单的服务架构图。在整...
2020-08-27 09:28:30
3158
1
原创 Mysql5.7备份警告 mysqldump: [Warning] Using a password on the command line interface can be insecure处理
在使用mysqldump脚本备份数据库报错这个问题应该是在MySQL5.6+版本的时候就有出现,可能是为了确保数据库的安全性采用的保护机制。那我们怎么使用密码才能安全呢?我查了好多解决方案,基本都是修改mysql配置文件my.cnf,将账号密码信息放到配置文件中。如下:[mysqldump]socket=/tmp/mysql.scokdefault-character-set=utf8mb4host=127.0.0.1user=rootpassword='****'注意:mysq
2020-07-09 18:40:11
3536
原创 Linux服务器中Mysql5.7数据库自动备份及脚本任务实现
大家都知道,mysql数据库备份使用命令:mysqldump -uroot -ppassword dateabase > /data/bakup/dateabase_$(date +%y%m%d).sql由于有多个库,所以我还写了shell脚本做了优化,代码如下:#!/bin/bashDUMP='/usr/local/mysql/bin/mysqldump'HOST=127.0.0.1USER=rootPSW='******'BAKUP_DIR="/data/bakup/my
2020-07-09 18:25:07
1412
原创 SpringCloud微服务项目实战 - 限流、熔断、降级处理
我们知道,在分布式微服务项目体系中,一个系统是由若干个子服务模块组成,这若干个子服务相互调用协同工作,对外输出服务使得整个系统运作。由于服务之间的相互协作调用,所以要保证整个系统完整运行...
2020-07-06 10:33:31
8064
2
原创 SpringCloud微服务项目实战 - API网关Gateway详解实现
前面讲过zuul的网关实现,那为什么今天又要讲Spring Cloud Gateway呢?原因很简单。就是Spring Cloud已经放弃Netflix Zuul了。现在Spring C...
2020-05-25 08:27:16
13224
4
原创 SpringCloud微服务项目实战 - 网关zuul详解及搭建
上一篇介绍了服务的调用,这篇接着之前的话题,来说说SpringCloud中zuul的使用及搭建网关的那点事。首先,我们要知道什么是网关?网关,是一个系统中前置的统一入口,介于客户端和服务器端之间的中间层,主要用来处理非业务功能,提供路由请求、鉴权、监控、缓存、限流等功能。客户端发起的请求首先通过网关,进行非业务功能处理,在根据路径的路由,定位到具体的服务节点上。同时系统使用服务...
2020-04-24 10:19:33
1529
原创 微信小程序支付Java服务端开发源码,及那些你不知道的坑(一)
受新冠病毒疫情影响,小程序又被推上风间浪头,曾经的线下实体企业都开始纷纷的转型线上,但目前线上最大的入口莫过于微信。因此小程序成了商家们转型线上的首选。而由于微信自己的生态原因,小程序的在线支付只能使用微信小程序支付。这有让微信支付也越来越火,最近有很多开发者都找我咨询和要微信支付的源码的事情。我今天也再说说这事。微信小程序支付说道小程序支付,我要稍稍吐槽一下,微信支付真的搞的很乱。如果你...
2020-04-23 12:52:13
565
原创 阿里云linux服务器安装Jenlins详解
在Linux服务器上安装Jenkins的详细流程如下:首先需要安装Java环境,这里不做介绍1,下载安装包打开链接:https://jenkins.io/zh/download/选择版本,点击进入选中要下载的文件,右击选择“复制链接地址”,然后在linux服务器上下载(当然可以先下载到个人电脑本地再上传到服务器)等待下载完成,执行ls可查看下载的文件使用...
2020-04-14 17:59:03
397
原创 SpringCloud微服务项目实战 - 微服务调用详解(附面试题)
今天继续SpringCloud微服务项目实战系列文章,前面的文章已经说了微服务的服务注册与发现,现在接着上一篇的话题,说说微服务之间的调用。在实战之前,我们还是先掌握下基础理论等知识,继续以面试题的形式展开。微服务调用介绍一,SpringCloud微服务之间调用的方式有那些?在SpringCloud中实现微服务调用的方式有Ribbon、Feign两种,他们实现软负载均衡调用。R...
2020-04-09 23:49:21
3255
1
原创 SpringCloud微服务项目实战,服务注册与发现(附面试题)
最近项目的事真是搞的焦头乱额,好多天没更新文章了。今天抽空继续前面的SpringCloud微服务实战系列项目,以后我会基于面试的一些问题及原理展开,再深入到项目实战。希望小伙伴们看完能有更大的收获,不仅面试的基础问题都知道了,再跟着实战练练手,就能更加深入的掌握,对找工作也会有很大的帮助。服务注册与发现(面试题)1、什么是服务的注册与发现?服务的注册与发现,在任何RPC远程调用框架...
2020-04-09 23:46:08
1865
原创 Spring Cloud微服务项目实战--Eureka服务搭建
今天我们要开始SpringCloud的微服务项目系列实战,我仍然以电商项目展开,从搭建一步步深入。在开始实战之前,我们先熟悉下SpringCloud。一,Spring Cloud是什么?SpringCloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状...
2020-04-09 23:43:03
1339
原创 SpringBoot+SpringCloud面试总结都在这里
今天,我先说说目前最火最流行的SpringBoot、SpringCloud面试相关的知识,以便支持大家学习。大家应该都知道,SpringBoot是目前最流行的微服务框架,SpringCloud也是目前最流行微服务治理框架。那大家对这两个框架到底知道多少呢?下面是我整理的内容。微服务1,什么是微服务?微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的...
2020-04-09 23:40:35
934
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人