自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 Prisma 学习笔记(从 Spring Boot + MyBatis-Plus 转向 Next.js + Prisma)

你好!从 **Java (Spring Boot + MyBatis-Plus)** 转向 **Next.js + Prisma** 是一个非常丝滑的体验。你会发现,虽然语言变了,但很多架构思想是相通的。作为 Java 后端出身,你习惯了 `Entity`、`Service`、`Mapper` 和 `Strong Typing`。Prisma 的核心优势正是**类型安全**,这会让你感觉像回到了家。

2026-03-01 15:36:09 742

原创 Next.js 学习日记

Next.js 服务端组件允许直接在组件中使用 async/await 获取数据,无需传统前端状态管理。作为 Vue 开发者,你会惊讶于这种简洁性:只需在服务端组件中直接调用数据库或 API,Next.js 会自动处理数据获取和渲染。这种模式消除了客户端数据请求的繁琐流程(useEffect/onMounted、loading状态等),显著提升开发效率。关键区别在于服务端组件在构建/请求时执行数据获取,结果直接嵌入生成的 HTML 中。要使用此特性,只需将组件声明为 async 并直接调用数据源,Next.

2026-03-01 15:35:50 848

原创 Vue3学习React学习文档记录

本文为Vue开发者提供React核心概念的系统性对照学习指南。首先通过对比框架定位、响应式机制等维度阐明React"UI=函数(state)"的哲学本质,重点解析了React组件作为普通函数与Vue组件的差异,详细对比了状态管理(useState vs ref)、模板语法(JSX vs template)、事件处理等核心概念。特别深入讲解了useEffect这一重要Hook,通过生命周期对照表展示其如何替代Vue的onMounted/watch等功能,并强调清理函数的必要性。最后指出Re

2026-02-04 11:14:01 764

原创 分布式解决方案

性能极高:它不需要像 2PC 那样在数据库层面长时间锁行数据。资源锁定是在业务层面完成的。跨数据库/跨语言:只要是能提供 HTTP 或 RPC 接口的服务,都能纳入 TCC,不受底层数据库 ACID 的限制。解耦更彻底:业务库不再需要维护额外的消息表。高并发能力:RocketMQ 能够支撑极高的消息吞吐量。自动重试与回查:当消费端抛出异常或返回时,RocketMQ不会丢弃这条消息,而是将其放入重试队列,保证了极端情况下的最终一致性。如果消息达到了最大重试次数依然失败,它会被移送到死信队列。

2026-01-17 11:34:27 700

原创 《字节外包二面凉经》

字节外包二面技术面,系统考察了考勤模块设计、微服务拆分、线程池与MQ选型、消息可靠性保障等核心能力。面试官通过层层递进的追问,重点验证候选人对系统架构的深度理解而非简单使用经验,包括异步处理方案对比、电商发货场景设计、存储组件特性等实战问题,最后以动态规划算法题收尾。整个流程着重考察技术方案的决策逻辑、异常场景应对能力及系统性技术思维。

2025-12-20 17:34:53 656

原创 linux系统(ubuntu)安装mysql8详细教程

贤哥手把手教你linux系统中安装mysql8数据库(二进制方式)

2025-09-25 11:51:32 946

原创 在 Java 中调用 ChatGPT API 并实现流式接收(Server-Sent Events, SSE)

为了提供更好的用户体验,我们可以使用Server-Sent Events(SSE)技术来实现流式接收。这样,当ChatGPT 服务器可以在生成响应的同时逐步将内容推送给我们,我们在通过 SSE 流式推送到前端页面,让用户能够实时看到生成的内容。我将详细介绍如何在Java中实现这一功能

2025-04-07 10:45:44 1598

原创 Vue2 快速过度 Vue3 教程 (后端学习)

隔好长一段时间没有写文章了,因为最近公司一个项目进度很赶,导致一直加班,没有时间空出来学习新的东西,这次趁着周末,赶紧补一下之前落下的一直想重新学一下整个大前端生态的想法,这次写一篇自己学习Vue3的笔记从 Vue 2 到 Vue 3,Vue.js 进行了全面的升级,带来了许多新特性、性能优化和开发体验的提升。以下是 Vue 2 到 Vue 3 的主要变化和核心改进:

2025-04-07 09:55:40 1044

原创 如何搭建 ELK【elasticsearch+logstash+kibana】日志分析系统

ELK即ELK平台是一套完整的日志集中处理解决方案,将Logstash和Kiabana三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。Logstash:用于收集并处理日志,将日志信息存储到里面:用于存储收集到的日志信息Kibana:通过Web端的可视化界面来查看日志(数据可视化)ELK 的工作原理在所有需要收集日志的服务器上部署Logstash;或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署Logstash。Logstash收集日志,将日志格式化并输出到中。

2024-11-04 15:49:55 9675

原创 Elasticsearch 8 的详细安装步骤和基本使用

简称es8是一款非常强大的开源搜索引擎,具备非常多强大功能,网上对其有非常详细的定义这里不多做赘述,总之它是在你查询语句性能达到瓶颈,并且使用了索引、缓存等手段仍然无法突破的情况下的另一种十分有效的解决方案。

2024-10-10 17:22:44 4353

原创 Redis分布式锁(详细解析)

对于一个单机的系统,我们可以通过synchronized或者ReentrantLock等这些常规的加锁方式来实现,然而对于一个分布式集群的系统而言,单纯的本地锁已经无法解决问题,所以就需要用到分布式锁了,通常我们都会引入三方组件或者服务来解决这个问题,比如数据库、Redis、Zookeeper等。

2024-09-29 12:01:35 930

原创 使用shardingsphere实现mysql数据库分片

是Apache基金会下的一个开源项目,提供分布式数据库中间件解决方案。已经在2020年4月16日从Apache孵化器毕业,成为 Apache 顶级项目。其主要功能包括数据分片(Sharding)、读写分离、分布式事务以及数据加密等。:轻量级的 Java 框架,直接集成在应用程序中,提供数据库分片、读写分离等功能。需要在中集成,编写相关的配置。如果分片策略用默认的4种,那可以只改配置就好了。如果分片策略很特殊,可以通过实现抽象类,写自定义的方法进行分片分库。:独立部署的数据库代理,支持所有兼容MySQL。

2024-09-25 16:29:40 1550

原创 再次重温 Spring 中 Bean 的生命周期

初始化完成后,Bean就成功创建了,之后就可以使用这个Bean, 当Bean不再需要时,会进行销毁操作,当Bean不再需要时,会经过清理阶段,如果。接口,通过Aware类型的接口,可以让我们拿到Spring容器的些资源。()方法进行实例化,实际上就是通过反射的方式创建出一个。的时候需要注入另一个尚末初始化的依赖时,容器就会调用。属性会自动调用其配置的初始化方法。,当客户向容器请求一个尚未初始化的。这个接口,会调用那个其实现的。属性填充完成后,进行初始化。接口,如果实现了,将会执行。判断Bean是否实现了。

2024-09-25 16:24:32 626

原创 Spring Boot自动装配源码阅读笔记

在传统的 springmvc 项目中,当我们需要使用 mvc 模块、mysql 数据模块、redis 缓存模块的时候。我们需要导入依赖的 jar,然后在 spring 的配置文件中配置dataSource(视图解析器)、(文件上传)、事务管理器等模块。把这些我们需要的模块变成 bean,给 spring 管理。SpringBootSpringBoot在启动时会扫描外部引用 jar 包中的文件,将文件中配置的类型信息加载到Spring容器(此处涉及到JVM类加载机制与Spring。

2024-09-25 10:13:15 653

原创 Springboot框架自动装配原理之@Import注解(自动装配的核心底层实现)

在平时看源码或者很多配置类上面都会出现@Import注解,功能就是和Spring XML里面 的 一样.@Import注解是用来导入配置类或者一些需要前置加载的类.,springboot框架实现自动装配的原理之一正是利用这一特性解决了spring框架中重量级的xml配置Import注解的作用:也是注入第三方类让他变成容器管理的bean,比结合@bean功能更加单一。但是更加暴力简单。

2024-09-25 10:13:07 567

原创 mysql 备份表数据_MySQL备份数据库

很多公司没有专业的DBA,很多时候开发人员在开发时不得不手动在生产环境下操作数据库,总所周知,在生产环境下操作数据非常危险,如果update更新或delete删除语句忘写了where条件或者写错了where条件,那么只能跑路了。为了保证万无一失,笔者在操作数据库前会进行数据备份,如此一来,即使手抖出错,数据也能及时从备份中恢复。我总结了mysql几种备份数据的方法。

2024-09-14 16:21:51 2173 2

原创 由“为什么VO不能继承PO?” 引出的为什么组合优于继承?

我在个人项目中喜欢直接使用各种 `model` 来继承 `po`,单纯的因为可以直接省去写各种重复 `getter` 和 `setter` 的步骤,并且不需要使用各种拷贝工具。但是,搞`vo`、`do`、`po`,还有其他各种 `o`,是为了解藕它们之间的联系,而继承却是建立它们之间的耦合关系,确实是会限制类的扩展性和灵活性。

2024-09-02 17:07:45 1375

原创 springboot整合activity7(一)

此章节首先完成后端的activiti整合,生成工作流所需数据库表,数据库采用mysql。

2024-08-11 19:20:16 1004

原创 MySQl高级篇-分库分表(为什么需要分表?什么时候分库分表)

分库分表是在海量数据下,由于单库、表数据量过大,导致数据库性能持续下降的问题,演变出的技术方案。

2024-08-10 17:24:26 3780

原创 使用Github-Action实现当代码推送远程仓库后自动部署Springboot项目

是 GitHub 提供的一项持续集成 (CI) 和持续部署 (CD) 服务。它允许你在代码仓库中定义和运行自动化的工作流程,以响应存储库中的事件或调度。 可以用于构建、测试、打包和部署项目,也可以执行其他自动化任务。第一步需要先配置,保证我们的服务器信息不暴露首先进入你要部署的项目仓库的首页,然后点击 -> 在这里配置我们服务器的IP和账号密码因为这里构建的包不是很大,所以我们使用的方式是先在的环境构建打包,然后将包发送到目标服务器。你也可以在里让目标服务器执行命令去做git,构建,部署,启动等等相关的在仓

2024-07-23 00:47:58 1277

原创 记一次docker容器安装MySQL,navicat无法连接报错(10060错误)

最后猜一下怎么解决的,我重启了docker服务之后发现就可以成功连接上了。的用户授权情况,发现设置的是允许任何主机连接(%),所以也不是这个原因。阿里的服务器开始并没有安装防火墙服务,所以这个也排除。上网上搜了半天资料,还是没找到有用的解决办法。时,遇到了一个诡异的问题,在云服务器的。这个是首先排查的点,但是我从本地可以。账户密码多次确认后也是没问题的。,所以网络是通的没问题。端口也是开放了的,没问题。今天在云服务器上使用。

2024-07-14 20:29:40 1014 4

原创 MySQl高级篇-事务、锁机制、MVCC

间隙锁(Gap Lock)是InnoDB在可重复读()隔离级别下实现多版本并发控制(MVCC)的一种锁机制。它会锁定一个范围内的所有记录,但不包括范围两端的记录。这种锁可以防止幻读现象的发生。

2024-07-14 19:19:08 1075

原创 MySQl高级篇-主从复制

slave会从master读取binlog来进行数据同步masterbinary logslavemasterrelay logslaveslavemasterslavemastersalve复制的最大问题是延迟。

2024-07-14 19:18:45 797

原创 MySQl高级篇-查询优化篇

join。

2024-07-14 19:17:15 1895

原创 MySQl高级篇 -索引优化篇

InnoDB采用了一个B+数来存储索引,使得在千万级数据量的一个情况下,树的高度可以控制在3层以内,而层高代表磁盘IO的一个次数,因此基于索引查找可以减少磁盘IO的次数MySQL的索引是在存储引擎层实现的,不同的存储引擎有不同的结构,主要包含以下几种二叉树缺点: 顺序插入时,会形成一个链表,查询性能大大降低。大数据量情况下,层级较深,检索速度慢。BTree(多路平衡查找树)每个节点可以包含多个子节点。相比于二叉搜索树,B+树的节点可以存储更多的关键字,减少了树的高度,提高了检索效率。以一颗最大度数(max-

2024-07-14 19:14:28 1137

原创 Java线上接口耗时分析神器 Arthas

简单来说,Arthas是阿里巴巴开源的Java诊断工具,号称“线上问题终结者”。通过它,我们可以在线上环境下实时监控和分析Java应用的性能问题。无论是耗时长的接口,还是奇怪的CPU使用率,都能一网打尽。github地址。

2024-07-06 20:21:13 1121

原创 阿里云邮件发送的坑,Linux环境邮件发送报错:Couldn‘t connect to host, port: smtp.qq.com, 25; timeout -1;

如题,突然发现博客上的邮件发送功能用不了了,于是在Windows环境下本地调试,邮件发送能够正常使用,但是到了Linux环境下,邮件服务报错,无法发送邮件。为什么之前一直没出问题呢,是因为之前一直用的是华为云的服务器和腾讯云的服务器,所有没有问题,而最近服务器换成了阿里云之后就出现问题了。端口的屏蔽策略和普通的安全策略不同,无法通过配置安全组规则的方式来进行开放,如果需要开放。端口,需要向阿里云进行申诉,这是一种比较麻烦的处理方法。端口,导致邮件服务无法正常使用。

2024-07-01 16:19:36 821

原创 记一次服务器崩溃事件

今天在安装Jenkins的时候,进行到插件安装这一步,本来一切顺利,结果最后安装完成之后一直进不去网页,显示连接超时,网上搜索了一圈也没发现什么相似的情况,当我疑惑的时候回到Linux控制台,发现命令的响应很慢的时候我就发现不对劲了,到最后卡到甚至一行命令都执行不了。

2024-06-24 11:45:20 651

原创 Linux安装Maven(详细教程手把手教会)

Linux安装Maven(详细教程手把手教会)

2024-06-23 18:40:25 476

原创 设计模式以及其最佳的实践

抽象工厂模式通过定义一个抽象工厂接口和多个具体的工厂类来创建一系列相关或依赖的对象。每个具体的工厂类负责创建一组相关的产品对象,客户端可以通过选择不同的具体工厂类来获取不同系列的产品对象。抽象工厂模式强调了产品族的概念,适用于需要创建一组相关对象的场景。

2024-06-18 09:17:58 1027

原创 多线程最佳实践

当你遇到一个场景,需要同时启动多个任务,并等待所有任务完成后执行后续操作。这个方法很有用,比如你需要执行三个下载任务,当三个任务都下载完成后你才通知界面说完成,这个时候如果一个个去下载肯定耗时非常高,我们可以同时起三个线程去并行执行任务,减少总的执行时间。

2024-06-05 16:14:17 447

原创 Linux快速定位日志 排查bug技巧和常用命令、系统监控命令

在 Linux 系统中,可以使用grep命令来查找日志文件中包含特定关键字的行。假设你的日志文件路径为,你想要查找包含关键字"abc"或找到行号后就好说了,通过下一条命令 直接输出当前行号下的日志这个命令是用来查看一个日志文件xxx.log中特定范围的行。从第 501 行开始,显示接下来的 100 行日志这样可以更快速更精准的定位到关键日志,而不是去打开日志文件来搜索,或者二次触发bug,来查看日志,这些命令能够帮助你更高效地查找和分析日志文件中的特定信息。

2024-05-28 09:37:47 8311

原创 基于springboot + Thymeleaf + vue开发的 个人博客,含前后端

该博客是之前博客()的一个2.0改造版本,对前端进行了全面的翻新!改用了bootstrap作为前端css框架,更加简约、美观,并且对项目的后台使用vueaxios进行了重构,框架进行重新选型,并且使用sa-token进行鉴权,博客的模板引擎还是使用thymeleaf(SEO优化友好)。

2024-02-11 18:55:21 1565 1

原创 最新版ES8的client API操作 Elasticsearch Java API client 8.0

我们在学习ES客户端时,一直使用的都是`Java High Level Rest Client`,在浏览官网时,发现官方给出的警告是:`Java REST` 客户端已被弃用,取而代之的是 `Java API client` 客户端,ES `8.x` 新版本中,`Type` 概念被弃用,所以新版 `JavaAPI` 也相应做出了改变,使用更加简便。ES 官方从 `7.15` 起开始建议使用新的 `JavaAPI`如何使用最新的 `Elasticsearch Java client 8.0` 来创建索引并进

2023-12-07 10:12:05 10291 3

原创 使用java操作文件给指定目录下所有类统一添加 @author 创建者信息

这段代码的主要目的是自动化处理Java文件中的创建者信息,确保每个文件都有统一的作者信息,并提供了对比功能,让用户可以直观地看到更改的部分。:程序会检查文件中是否包含注释,如果存在注释,则会检查其中是否已包含作者信息,如果没有,则在注释中的合适位置插入新的作者信息。:在更新作者信息后,会输出原始内容与更新后内容的比较结果,通过高亮显示差异部分,以便用户检查更改。之间的位置,在此处尝试定位文件的开头,并且会在文件的开头插入新的作者信息。:更新完成后,会将修改后的内容写回到相应的Java文件中。

2023-11-30 16:40:56 891

原创 博客邮件提醒功能的实现(异步编程和消息队列Rabbitmq两种方式)

这里可以自己自定义好看的邮件模板,这里我就简单的测试一下。

2023-09-17 19:30:57 560

原创 Prompt合集

尽管提示中没有提及,但您也应该告诉听众的年龄以及是否要避免特定主题。例如,“写一个针对青少年的关于勇气的故事,但要避免打架和战争”。有了这个,ChatGPT 将讲述所提供主题的故事,而无需从任何地方复制内容。它会自己选择主题,你只需要提供你想要关注的寓意。

2023-05-15 14:19:31 1173 1

原创 使用nginx简单搭建一个属于自己的ChatGPT问答机器人

作者:ChenZhen本人不常看CSDN消息,有问题通过下面的方式联系:邮箱:1583296383@qq.com🌐版权:本文为博主的原创文章,本文版权归作者所有,转载请附上原文出处链接及本声明。📝如果对你有帮助,请给一个小小的star⭐🙏。

2023-05-10 16:39:57 5750 8

原创 Docker的使用教程、学习笔记,附实战:部署chatgpt网页版ui,部署mysql8数据库

微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题**数据卷(volume)**是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了。

2023-05-02 17:36:24 2691

原创 什么?还能让ChatGPT自己给自己写提示(Prompt)?

# 受众:🤔不知道如何向ChatGPT提问的人、不知道如何编写提示的人、不知道如何制定Prompt的人、无法撰写出高质量问题的人等。包括但不限于以上群体:# 概述:该文介绍了 Prompt(提示) 📝的概念以及其在人工智能领域的应用。它是指给AI模型的指令,可以是一个问题、一段文字描述或带有参数的描述。文中还提到了一个名为Prompt Creator的工具,可以让ChatGPT自己生成Prompt,通过批判和迭代来优化用户的Prompt。

2023-04-28 17:29:13 4414

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除